java基础----Date类
来源:互联网 发布:linux网络排查 编辑:程序博客网 时间:2024/06/05 14:21
简介: Date类是从JDK1.1就开始存在的老类,其提供了针对日期进行操作的诸多方法,但其却一直饱受诟病,不同的起始编号,国际化的低支持,JDK官方也认识到这个问题,后台提出使用Calendar类进行日期操作,日期的格式化交给DateFormat,虽然我们已经不再使用Date类中的大多数方法,但是还有一部分保留的内容指的我们一谈。
Date类实例化对象方法:
分为对构造函数赋参和不赋参,不赋参构造函数会将当前日期和时间转化为Date对象,赋参构造函数会将指定的毫秒值封装为Date对象
Date date = new Date();System.out.println(date); long time = System.currentTimeMillis(); date = new Date(time); System.out.println(date);
我们先对一个Date对象进行无参初始化,然后调用System的读秒函数,对这个Date对象重新进行有参初始化,得到结果相同
Mon Nov 20 21:16:41 CST 2017
分析打印的Date对象的哈希值:
dow son dd:mm:ss zzz yyyy
dow:一周中的第几天
son:一年中的第几月
dd:一个月中的第几天
hh:小时
mm:分钟
ss:秒
zzz:时区
yyyy:年份
毫秒值和日期对象之间的转化:
毫秒值->日期对象:
1.通过Date对象的构造方法new Date(timeMills)实现
Date date = new Date(System.currentTimeMillis());
2.通过setTime方法实现
Date date = new Date(); System.out.println(date); date.setTime(1); System.out.println(date);
Mon Nov 20 21:27:11 CST 2017
Thu Jan 01 08:00:00 CST 1970
日期对象->毫秒值
通过getTime()方法实现
Date date = new Date(); System.out.println(date); System.out.println(date.getTime());
Mon Nov 20 21:28:56 CST 2017
1511184536295
日期对象的格式化
将日期对象转化为日期格式的字符串
使用的是DateFormat类的format方法
步骤:
1.获取一个Date对象
2.获取日期格式对象,具备默认风格,FULL,LONG等可以指定风格
3,通过DateFormat类的format(date)方法对字符串进行对应格式赋值,参数为对应的日期对象
Date date = new Date(); //DateFormat.getDateInstance()为一个静态工厂方法,通过工厂返回所需要的对象 DateFormat df = DateFormat.getDateInstance(); System.out.println(df.format(date));
2017-11-20
静态工厂方法可以有参数指定风格
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
2017年11月20日 星期一
getDateInstance()方法返回日期
getDateTimeInstance()方法返回日期加时间
DateFormat df = DateFormat.getDateTimeInstance(); System.out.println(df.format(date)); df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.LONG); System.out.println(df.format(date));
2017-11-20 21:41:50
2017年11月20日 星期一 下午09时41分50秒
如果输出风格是自定义的,可以通过DateFormat的实现类SimpleDateFormat()实现
DateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); System.out.println(sdf.format(date));
2017-10-21
将日期格式的字符串转成日期对象
使用的是DateFormat中的parse()
需要抛出一个异常ParseException,维护传入参数格式
String strTime = "2017-11-21"; DateFormat df = DateFormat.getDateInstance(); Date date = df.parse(strTime); System.out.println(date);
Tue Nov 21 00:00:00 CST 2017
如果想要获取日期和时间,也可以用getDateTimeInstance()工厂方法,但要注意传入参数的格式,不然会报异常
String strTime = "2017-11-21 14:16:25"; DateFormat df = DateFormat.getDateTimeInstance();
Tue Nov 21 14:16:25 CST 2017
相同的,可以采用自定义的方法生成Date对象
String strTime = "2017年6月11日"; DateFormat df = new SimpleDateFormat("yyyy年MM月DD日");
日期对象之间具有比较性
after,before,equals 返回类型均为布尔类型
Date date1 = new Date(1); Date date2 = new Date(2); System.out.println(date1.equals(date2)); System.out.println(date1.after(date2)); System.out.println(date1.before(date2));
false
false
true
总结:Date类现在并不推荐使用,Java推荐了Calendar和DateFormat,甚至SimpleDateFormat来替代它,Date中仅剩的几个方法仍然还很实用,尤其是before与after方法,可以很方便的判断两个时间点的先后,当然判断的条件是将你的时间转换成Date格式,使用Date剩余的两个构造器实现即可,当然也可以使用推荐的SimpleDateFormat方法进行简单的格式化日期格式字符串的方式得到Date格式的时间点
- Java基础-Date类
- java基础----Date类
- java基础之Date类
- JAVA基础 date
- java基础18-date
- Java基础:Java Date数据类型
- Java基础:Java Date数据类型
- Java基础-Java中的Calendar和Date类
- Java基础-Java中的Calendar和Date类
- Java基础-Java中的Calendar和Date类
- Java基础-Java中的Calendar和Date类
- java基础入门----Date对象
- JAVA基础—关于Date
- Date类、Calendar类与SimpleDateFormat类-Java基础063
- 黑马程序员:Java基础总结----类 Date 和类 Calendar
- Java基础 日期Date类和SimpleDateFormat类
- Java基础:Date和Calendar类的使用方法
- java基础—Date类的常见方法演示
- mysqld 5.7.19-0ubuntu0.16.04.1 ERROR 1045(28000):Access denied ......
- 关于数据库 约束或主外键约束的插入失败问题
- 邮件服务端口 port 25、109、110、143、465、995、993
- android工程目录下,lib和libs到底有什么区别
- C# 在类中定义事件
- java基础----Date类
- QLabel实现双击事件
- 11月20日云栖精选夜读:围观阿里总部:边喝茶边搞技术是一种怎样的体验?
- 基于java的WebSocket的主动推送
- 4. 流程控制语句
- MapReduce之二次排序
- windows 08 IIS 7 发布FTP站点
- 迈吉客受邀参加《创意中国》, 85%超高支持率晋级年度盛典
- spss