java-常用类之Date&DateFormat

1. Date&DateFormat

​ java针对日期时间相关的操作提供了大量的工具类支持:java.util.Datejava.sql.Datejava.sql.Timejava.sql.Timestampjava.util.Calendar等。

1.1. Date

java.util.Date是java中一个常见的用于进行日期时间处理工具类,该类出现自jdk1.0;但是由于其很多相关的操作方法或构造器不利于国际化,因此从jdk1.1开始新增java.util.Calendar对其进行替换。

Date的常见构造器:

  • Date():构建一个以当前系统时间为标准的Date对象
  • Date(long time):构建一个以指定时间毫秒数为参数的日期对象
Date d = new Date();
Date d2 = new Date(System.currentTimeMillis());

//+8
System.out.println(d);
System.out.println(d2);

Date的常用方法:

由于Date类多数时候仅用于表示一个时间,其多数方法都标记为过时,因此常用方法仅剩以下几个:

  • after(Date d): 判断当前日期是否在参数日期之后
  • before(Date d):判断当前日期是否在参数日期之前
  • getTime():获取当前日期所表示的时间毫秒数(从1970)
//获取指定日期的毫秒数
System.out.println(d+"--"+d.getTime());
System.out.println(d2+"=="+d2.getTime());
//      避免使用过时的构造器与方法
//        Date d3 = new Date(122,6,19);
//        System.out.println(d3);
//判断当前日期对象是否在参数日期之后
System.out.println(d.after(d2));
//判断当前日期对象是否在参数日期之后
System.out.println(d.before(d2));

1.2. DateFormat&SimpleDateFormat

​ 默认的日期类所表示的时间格式不符合国人阅读习惯,因此JDK提供了用于对日期进行格式化或解析的工具类:java.text.DateFormat,是一个抽象类。DateFormat内部包含一些静态工厂方法用于返回特定的格式化对象,但是并不能满足所有的需求,并且其内部实现使用的是其子类SimpleDateFormat;所以使用SimpleDateFormat可以针对个性化的日期格式需求进行定制。

1.2.1. 常用方法
  • getDateTimeInstance():获取一个时间日期的格式化对象
  • getDateInstance():获取一个日期的格式化对象
  • getTimeInstance():获取一个时间的格式化对象
  • format(Date d):将Date对象格式化为字符串
  • parse(String s):将字符串表示的日期解析为Date对象
1.2.2. 常用构造器
  • SimpleDateFormat(String pattern):使用特定的匹配模式创建格式化对象
3.2.2.1. 匹配模式表

1.2.2.2. 参考实例

1.2.2.3. 代码案例
Date d = new Date();
//获取日期时间格式化工具
DateFormat fmt = DateFormat.getDateTimeInstance();
System.out.println(fmt.format(d));
//获取日期格式化工具
fmt = DateFormat.getDateInstance();
System.out.println(fmt.format(d));
//获取时间格式化工具
fmt = DateFormat.getTimeInstance();
System.out.println(fmt.format(d));

//如果需要显示 yyyy年MM月dd日 HH时mm分ss秒
fmt = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
System.out.println(fmt.format(d));

// 显示 2021-10-12 14:15:22 356 时间?
fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(fmt.format(d));

String birth = "2000-01-11";
fmt = new SimpleDateFormat("yyyy-MM-dd");
//将字符串表示的日期解析为Date对象
Date birthday = fmt.parse(birth);
System.out.println(birthday);

1.3. 其他日期时间类

在早期版本的jdk中日期类除了提供java.util.Date之外,还提供了一些用于表示日期,时间或日期时间更精确的日期时间类,并且这些类都是继承自java.util.Date

  • java.sql.Date:用于表示日期
  • java.sql.Time:用于表时间
  • java.sql.Timestamp:用于表示精确的时间戳
//日期对象(只含日期部分不含时间部分)
Date date = new Date(System.currentTimeMillis());
System.out.println(date);

//格式:yyyy/MM/dd HH:mm:ss

DateFormat fmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String time = fmt.format(date);
System.out.println(time);

java.util.Date date2 = fmt.parse(time);
System.out.println(date2);

Time t = new Time(456720);
System.out.println(t.toString().substring(3));


Timestamp ts = new Timestamp(System.currentTimeMillis());
System.out.println(ts);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值