1. Date类: java.util.Date
- 时间原点:1970年1月1日00:00:00(中国+8小时)
System.currentTimeMillis()
计算当前时间到原点经历的毫秒数- 无参构造:当前系统时间
toLocalString()
方法:按当地习惯打印时间
1 Date date = new Date();
2 System.out.println(date);//打印当前时间Tue Jul 28 20:57:42 CST 2020
4. 带参数构造:传入相对原点的毫秒,打印其对应时间
1 Date date = new Date(0L);
2 System.out.println(date); //Thu Jan 01 08:00:00 CST 1970
3 Date date1 = new Date(System.currentTimeMillis());
4 System.out.println(date1); //Tue Jul 28 21:02:32 CST 2020
5. long getTime(Date)
把Date类型的日期转换为毫秒,无参数时相当于System.currentTimeMillis()
2. DateFormat类: java.text.DateFormat
- 是一个抽象类。继承自Format抽象类。
- 可以使用它的子类:SimpleDateFormat类
- 格式化日期为文本、解析文本为日期
String format(Date date)
: 按照指定模式把日期解析为文本Date parse(String source)
: 把符合标准的字符串解析为Date日期SimpleDateFormat
中
![06e4c172f078ba8b671676f935da2bbf.png](https://i-blog.csdnimg.cn/blog_migrate/33fe3b5c28f6efe7a5ac678d1dc7eee6.png)
如:"yyyy-MM-dd HH:mm:ss", "yyyy年MM月dd日 HH时mm分ss秒"
1 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2 Date date= new Date(); //得到当前时间
3 String standardDate = simpleDateFormat.format(date);
4 System.out.println(standardDate); //2020-07-28 21:24:36
5
6 date = simpleDateFormat.parse(standardDate); //必须和构造方法中的格式一样
7 System.out.println(date); //Tue Jul 28 21:28:38 CST 2020
3. Calendar类: java.util.calendar
- 是一个抽象类,提供了很多操作日历字段的方法
- 无法直接创建对象,里面有一个getInstance()方法返回一个Canlendar类的子类对象
public int get(int field)
: 返回给定日历字段的值public void set(int field , int value)
: 将给定的日历字段设置为给定值public abstract void add(int field, int amount)
: 根据日历规则,给日历字段增减指定的时间量public Date getTime()
: 返回表示此Calendar时间毫秒数的Date对象
![514d4ba44fa4f3c8e34adb77ef1ed7de.png](https://i-blog.csdnimg.cn/blog_migrate/ae4599a39e8165073b9d36399aadf338.png)
1 Calendar c = Calendar.getInstance(); //返回Calendar类的子类对象,多态
2 int year = c.get(Calendar.YEAR); //2020,YEAR是常量1,是field
3 int month = c.get(Calendar.MONTH); //6
4 int date = c.get(Calendar.DATE); //28
5 System.out.println(year+"-"+(month+1)+"-"+date); //2020-7-28
1 Calendar c = Calendar.getInstance(); //返回Calendar类的子类对象,多态
2
3 c.set(Calendar.YEAR, 2222); //单独设置某个字段
4 c.set(3333, 11,12); //全部一起设置
5 year = c.get(Calendar.YEAR);
6 month = c.get(Calendar.MONTH);
7 date = c.get(Calendar.DATE);
8 System.out.println(year+"-"+(month+1)+"-"+date); //3330-12-12
1 Date ddate = c.getTime();
2 System.out.println(ddate); //Tue Dec 12 22:48:25 CST 3330