Java 常用类—— JDK8之前日期时间API
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 常用类—— JDK8之前日期时间API,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5572字,纯文字阅读大概需要8分钟。
内容图文
![Java 常用类—— JDK8之前日期时间API](/upload/InfoBanner/zyjiaocheng/1330/23e78566eb2c4bf7ab08f2c0810bd0ed.jpg)
一、日期相关常用类
二、获取时间戳
System 类提供的 public static long currentTimeMillis() 用来返回当前时间与 1970 年1月1日0时0分0秒之间以毫秒为单位的时间差。
public static long currentTimeMillis():此方法适于计算时间差
扩展:计算世界时间的主要标准有:
UTC:Coordinated Universal Time
GMT:Greenwich Mean Time
CST:Central Standard Time
Demo:
1
@Test
2
public
void
test1() {
3
long time = System.currentTimeMillis();
4//返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
5//称为时间戳6 System.out.println(time); //16156434174877 }
三、Date类
1、java.util.Date 类
java.util.Date 表示特定的瞬间,精确到毫秒;
(1)构造器
Date(): 使用无参构造器创建的对象可以获取本地当前时间;
Date(long date):创建指定毫秒数的 Date 对象
(2)常用方法
getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数;
toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue,Wed, Thu, Fri, Sat), zzz是时间标准
Demo:
1
@Test
2
public
void
test2() {
3 Date date = new Date(); //创建一个对应当前时间的 Date 对象
4 System.out.println(date.getTime()); //1615644029188 5 System.out.println(date.toString()); //Sat Mar 13 22:00:29 CST 2021 6 7 8 Date date1 = new Date(161564402000L); //创建指定毫秒数的 Date 对象
9 System.out.println(date1.getTime()); //16156440200010 System.out.println(date1.toString()); //Fri Feb 14 07:00:02 CST 197511 }
2、java.sql.Date 类
java.sql.Date 类是 java.util.Date 类的子类,一般用于与数据库中记录的日期时间相匹配。
(1)构造器
Date(int year, int month, int day): 使用year,month,day创建Date 对象,这里的year是与1900年的偏移量,月份从1开始累加
Date(long date):创建指定毫秒数的 Date 对象
(2)常用方法
getTime():获取当前Date对象对应的毫秒数。(时间戳)
toString():显示当前的年、月、日、时、分、秒
Demo:
1
@Test
2
public
void
test3() {
3 java.sql.Date date = new java.sql.Date(0, 03, 13);
4 System.out.println(date.getTime()); //-2200205143000 5 System.out.println(date.toString()); //1900-04-13 6 7 8 java.sql.Date date1 = new java.sql.Date(161564402000L);
9 System.out.println(date1.getTime()); //16156440200010 System.out.println(date1.toString()); //1975-02-1411 }
3、思考
(1)如何将java.util.Date对象转换为java.sql.Date对象
//情况一:强转
Date date = new java.sql.Date(2343243242323L);
java.sql.Date date2 = (java.sql.Date) date;
//情况二:利用子类的构造器
Date date3 = new Date();
java.sql.Date date4 = new java.sql.Date(date3.getTime());
(2)如何将java.sql.Date对象转换为java.util.Date对象
利用多态的性质,可以将子类对象赋值给父类引用
Date date = new java.sql.Date(2343243242323L);
四、SimpleDateFormat 类
1、概述
Date 类的 API 不易于国际化,大部分被废弃了,java.text.SimpleDateFormat 类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
SimpleDateFormat 类它允许进行格式化:日期——>文本; 解析:文本——>日期;
SimpleDateFormat对日期Date类的格式化和解析。
2、构造器
SimpleDateFormat format = new SimpleDateFormat(); //默认的模式和语言环境创建对象
SimpleDateFormat format1 = new SimpleDateFormat(String pattern); //该构造方法可以用参数 pattern指定的格式创建一个对象,该对象调用
说明:
3、格式化
public String format(Date date): 方法格式化时间对象date
4、解析
public Date parse(String source): 从给定字符串的开始解析文本,以生成一个日期。
5、案例
1
@Test
2
public
void test4() throws ParseException {
3//实例化SimpleDateFormat:使用默认的构造器 4 SimpleDateFormat format = new SimpleDateFormat();
5 6 Date date = new Date();
7 System.out.println("date = " + date); //Sat Mar 13 22:33:14 CST 2021
8 9//格式化:日期——>字符串10 String dateStr = format.format(date);
11 System.out.println("dateStr = " + dateStr); //21-3-13 下午10:33
1213//解析:格式化的逆过程,字符串——>日期14 String str = "21-3-13 下午10:33";
15 Date parseDate = format.parse(str);
16 System.out.println("parseDate = " + parseDate); //Sat Mar 13 22:33:00 CST 2021
171819//按照指定的方式格式化和解析:调用带参的构造器
20//调用带参的构造器21 SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
2223 Date date1 = new Date();
24 System.out.println("date1 = " + date1); //Sat Mar 13 22:33:52 CST 2021
2526//格式化:日期——>字符串27 String dateStr1 = format1.format(date1);
28 System.out.println("dateStr1 = " + dateStr1); //2021-03-13 10:34:54
2930//解析:格式化的逆过程,字符串——>日期31 String str1 = "2021-03-13 10:34:54";
32 Date parseDate1 = format1.parse(str1);
33 System.out.println("parseDate1 = " + parseDate1); // Sat Mar 13 10:34:54 CST 202134 }
注意:在这里会抛出异常:ParseException
五、Calendar日历类
1、概述
Calendar 是一个抽象基类,主要用于完成日期字段之间相互操作的功能。
2、获取实例
类的继承结构:
可以看到 Calendar 是一个抽象类,那么怎么获取它的实现类呢?
获取 Calendar 实例的方法:
Calendar calendar = Calendar.getInstance(); //调用其静态方法getInstance()
Calendar calendar = new GregorianCalendar(); //创建其子类(GregorianCalendar)的对象
3、常用方法
一个 Calendar 的实例是系统时间的抽象表示,通过get(int field) 方法来取得想要的时间信息。
其中 field 是 Calendar 类中声明的常量:
常用方法:
public int get(int field) 根据 filed 获取对应的值
public void set(int field, int value) 根据 filed 设置对应的值,会修改 Calendar 对象
public void add(int field, int amount) 在对应的 field 上加上对应的值
public final Date getTime() 返回 date 对象,将 Calendar 对象转换为 Date 对象
public final void setTime(date):将 date 对象转换为 Calendar对象
4、案例
1
@Test
2
public
void
test5() {
3 Calendar calendar1 = new GregorianCalendar();
4 5 Calendar calendar = Calendar.getInstance();
6 7//get() 8int days = calendar.get(Calendar.DAY_OF_MONTH);
9 System.out.println("days = " + days); //days = 1310 System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); //72
1112//set() 这里会改变 Calendar 对象的属性,Calendar是可变的13 calendar.set(Calendar.DAY_OF_MONTH, 22);
14 days = calendar.get(Calendar.DAY_OF_MONTH);
15 System.out.println("days = " + days); //days = 22
1617//add()18 calendar.add(Calendar.DAY_OF_MONTH, -3);
19 days = calendar.get(Calendar.DAY_OF_MONTH);
20 System.out.println("days = " + days); //days = 19
2122//getTime(): 日历类——> Date23 Date date = calendar.getTime();
24 System.out.println("date = " + date); //date = Fri Mar 19 23:04:41 CST 2021
2526//setTime(): Date ——> 日历类27 Date date1 = new Date();
28 calendar.setTime(date1);
29 days = calendar.get(Calendar.DAY_OF_MONTH);
30 System.out.println("days = " + days); //days = 1331 }
注意:
① 获取月份时,一月是 0,二月是1,以此类推,12月是11
② 获取星期时:周日是1,周一是2... 周六是 7
原文:https://www.cnblogs.com/niujifei/p/14530931.html
内容总结
以上是互联网集市为您收集整理的Java 常用类—— JDK8之前日期时间API全部内容,希望文章能够帮你解决Java 常用类—— JDK8之前日期时间API所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。