最近在写和时间有关的代码时,发现是时候复习一下java中Date类的一些经常用到的方法。
正文
Date
类在util
包中。
- 当我们需要一个简单的Date对象时,可以用Date类
- 要取出具体年份、月份等等用Calendar类比较好
- 其他还涉及到相关类型转化是会使用到
SimpleDateFormat
、Timestamp
构造方法
构造方法有两个,无参和有参
- 无参构造方法
获取当前时间对象
Date date = new Date();
- 有参构造方法
自定义时间戳来获得时间对象
Date date1 = new Date(1543543174478L);
常用方法
- 先后比较
boolean before(Date when)
System.out.println(date.before(date1));
boolean after(Date when)
System.out.println(date.after(date1));
- 获得当前时间的毫秒数
System.out.println("date.getTime is"+date.getTime());
Calendar类
方便的获得具体的年份、月份等等。
Calendar
是一个抽象类,不能通过new
来创建对象,但是其提供了一个静态重载方法构建对象。
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance(TimeZone.getDefault());
Calendar calendar3 = Calendar.getInstance(Locale.getDefault());
Calendar calendar4 = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
获取年、月,日
System.out.println("年份: "+calendar1.get(Calendar.YEAR));
System.out.println("月份: "+(calendar1.get(Calendar.MONTH)+1));
System.out.println("日: "+calendar1.get(Calendar.DAY_OF_MONTH));
运行结果为
与其他类型转化
TimeStamp类
当数据库字段类型为datetime
时,就要用到TimeStamp
类了。
Timestamp timestamp = new Timestamp(date.getTime());
System.out.println(timestamp);
SimpleDateFormat
可以对时间进行格式化,转化为我们想要格式的字符串。
- 时间转字符串
常用的格式代码
格式代码 | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 24小时制时 |
h | 12小时制时 |
m | 分钟 |
s | 秒 |
E | 星期 |
D | 一年中的第几天 |
w | 一年中的第几个星期 |
W | 一个月中的第几个星期 |
例如:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss E");
String dateFormat = simpleDateFormat.format(date);
System.out.println(dateFormat);
输出为:
- 字符串转时间
具体用到了Date parse(String time)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = "2018-11-30 10:00:00";
System.out.println(simpleDateFormat.parse(time));
输出结果为: