Java基础系列29-常用api之Date、SimpleDateFormat类

x33g5p2x  于2021-12-18 转载在 其他  
字(2.4k)|赞(0)|评价(0)|浏览(454)

一.date类概述

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

构造方法:

  1. Date()根据当前时间创建的日期对象
  2. Date(long date) 根据给定的毫秒值创建对象,从1970 年 1 月 1 日 00:00:00

代码:

  1. package Java_study;
  2. import java.util.Date;
  3. /**
  4. *
  5. * @author 只是甲
  6. * @date 2021-07-02
  7. * @remark Date类的概述和构造方法
  8. *
  9. */
  10. public class date1 {
  11. public static void main(String[] args) {
  12. //Date()
  13. Date d1 = new Date();
  14. System.out.println(d1);
  15. //Date(long date)
  16. long date = 1000 * 60 * 60;//1秒*60*60=1小时 ,从8点向后一小时即9点
  17. Date d2 = new Date(date);
  18. System.out.println(d2);
  19. }
  20. }

测试记录:

  1. Fri Jul 02 10:21:20 CST 2021
  2. Thu Jan 01 09:00:00 CST 1970

二. Date.getTime()/setTime()

Date成员方法:

  1. public long getTime():获取的是毫秒值。从1970年1月1日 00:00:00开始的。
    1)getTime()从Date得到一个毫秒值
  2. public void setTime(long time):设置时间,给的是毫秒值。
    1)setTime(long time)从一个毫秒值得到一个Date对象

代码:

  1. package Java_study;
  2. import java.util.Date;
  3. /**
  4. *
  5. * @author 只是甲
  6. * @date 2021-07-02
  7. * @remark Date类的成员方法getTime()和setTime()
  8. *
  9. */
  10. public class date2 {
  11. public static void main(String[] args) {
  12. //创建对象
  13. Date d = new Date();
  14. //Date.getTime
  15. System.out.println("getTime:" + d.getTime());
  16. //Date.setTime(Long Time)
  17. d.setTime(1000 * 60 * 60);
  18. System.out.println("setTime:" + d.getTime());
  19. }
  20. }

测试记录:

  1. getTime:1625192808414
  2. setTime:3600000

三. SimpleDateFormat

SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)

  1. 格式化(日期 -> 文本): Date --> String
  1. public final String format(Date date)
  1. 解析(文本 -> 日期): String --> Date
  1. public Date parse(String source)

代码:

  1. package Java_study;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. /**
  6. *
  7. * @author 只是甲
  8. * @date 2021-07-02
  9. * @remark SimpleDateFormat类的概述和使用
  10. *
  11. */
  12. public class date3 {
  13. public static void main(String[] args) {
  14. //Ddate --> String
  15. Date d1 = new Date();
  16. System.out.println("d1指定模式前:" + d1);
  17. /* 现在虽然实现了把日期格式化成一个字符串,但是不是我们想要的格式
  18. 我们想要的格式是:xxxx年xx月xx日 xx:xx:xx
  19. SimpleDateFormat(): 用默认的模式
  20. SimpleDateFormat sdf = new SimpleDateFormat();
  21. SimpleDateFormat(String pattern):用给定的模式
  22. */
  23. SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH:mm:ss");
  24. String s = sdf1.format(d1);
  25. System.out.println("d1指定模式后:" + s);
  26. //String --> Date
  27. String str = "2080-08-08 12:23:45";
  28. //把一个字符串解析为日期的时候,请注意模式字符串和给定的日期字符串的格式要匹配
  29. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  30. try {
  31. Date d2 = sdf2.parse(str);
  32. System.out.println("d2:" + d2);
  33. } catch (ParseException e) {
  34. e.printStackTrace();//打印异常信息
  35. System.out.println("字符串格式异常,请重新输入,【格式:yyyy-MM-dd HH:mm:ss】");
  36. }
  37. }
  38. }

测试记录:

  1. d1指定模式前:Fri Jul 02 10:35:12 CST 2021
  2. d1指定模式后:2021 07 02 10:35:12
  3. d2:Thu Aug 08 12:23:45 CST 2080

参考:

  1. https://blog.csdn.net/qq_43529621/article/details/115858596

相关文章