Date

使用 Date 类的默认无参构造方法创建出的对象就代表当前时间

Date:表示特定的瞬间,精确到毫秒。

  • Date常用成员方法:
  1. Date() //根据当前的默认毫秒值创建日期对象
  2. Date(long date) //根据给定的毫秒值创建日期对象
  3. public long getTime() //获取时间,以毫秒为单位
  4. public void setTime(long time) //设置时间
  • Date使用示例:
  1. /**
  2. * 把一个毫秒值转换为Date,有两种方式:
  3. * (1)构造方法
  4. * (2)setTime(long time)
  5. */
  6. public class DateDemo {
  7. public static void main(String[] args) {
  8. // Date():根据当前的默认毫秒值创建日期对象
  9. Date d = new Date();
  10. System.out.println("d:" + d);
  11. //d:Tue Dec 25 20:01:17 GMT+08:00 2018 --> 当前时间
  12. // Date(long date):根据给定的毫秒值创建日期对象
  13. //long time = System.currentTimeMillis();
  14. long time = 1000 * 60 * 60; // 1小时
  15. Date d2 = new Date(time);
  16. System.out.println("d2:" + d2);
  17. //格林威治时间 1970年01月01日00时00分00
  18. //Thu Jan 01 09:00:00 GMT+08:00 1970 GMT+表示 标准时间加8小时,因为中国是东八区
  19. // 获取时间
  20. long time2 = d.getTime();
  21. System.out.println(time2); //1545739438466 毫秒
  22. System.out.println(System.currentTimeMillis());
  23. // 设置时间
  24. d.setTime(1000*60*60);
  25. System.out.println("d:" + d);
  26. //Thu Jan 01 09:00:00 GMT+08:00 1970
  27. }
  28. }

SimpleDateFormat

DateFormat:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat
使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。

(1)使用 format() 方法将日期转换为指定格式的文本

  1. // 创建Date对象,表示当前时间
  2. Date d = new Date();
  3. // 创建SimpleDateFormat对象,指定目标格式
  4. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  5. // 调用format(),格式化时间,转换为指定格式字符串
  6. String today = sdf.format(d);
  7. // 输出转换后的字符串
  8. System.out.println(today);

(2)使用 parse() 方法将文本转换为日期

  1. // 创建日期格式的字符串
  2. String day = "2019年11月26日 11:11:11"
  3. // 创建SimpleDateFormat对象,指定字符串的日期格式
  4. SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
  5. // 调用parse(),将字符串转换为日期
  6. Date date = df.parse(day);
  7. // 输出转换后的时间
  8. System.out.println(date);

Calendar

java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

(1)Calendar.add方法用于实现在某一日期的基础上增加若干天(或年、月、小时、分、秒等日期字段)后的新日期

  1. Calendar c = Calendar.getInstance();//创建Calendar对象
  2. c.add(c.DAY_OF_MONTH,10);//增加天数10天

(2)Calendar,get方法用于取出日期对象中的年、月、日、小时、分、秒等日期字段的值

  1. Calendar c = Calendar.getInstance();//创建Calendar对象
  2. int year = c.get(Calendar.YEAR);//获取年
  3. int month = c.get(Calendar.MONTH)+1;//获取月份,0表示1月份
  4. int day = c.get(Calendar.DAY_OF_MONTH);//获取日期
  5. int hour = c.get(Calendar.HOUR_OF_MONTH);//获取小时
  6. int minute = c.get(Calendar.MINUTE);//获取分钟
  7. int second = c.get(Calendar.SECOND);//获取秒

(3)Calendar.set方法用于修改日期对象中的年、月、日、小时、分、秒等日期字段的值

(4)Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。

  1. Date date = c.getTime();//将Calendar对象转换为Date对象
  2. Long time = c.getTimeInMillis();//获取当前毫秒数
  3. System.out.println("当前时间:"+date);
  4. System.out.println("当前毫秒数:"+time);