Java中的日期表示类
一、概述
Java中的日期类设计的比较失败,刚开始使用Date来计算时间,后来大部分Date类的方法都过时了;想用Calendar类代替Date类,然而Calendar类也是不尽如人意。下面简单介绍下Java中的日期转换方法。
1、Date类
Date类的构造方法有两个,public Date()和public Date(long date).可以用来表示当前日期,或者将长整型数据表示成时间。第一个勉强可以用下,用来表示当前时间,第二个试问谁能记得住那么一大串的时间值呢?看下示例吧:
//参数表示1970-01-01 00:00:00到指定时间的毫秒数
Date date1 = new Date(14686531L);
System.out.println(date1);
Date date2= new Date();
System.out.println(date2);
输出的日期为:
Thu Jan 01 12:04:46 GMT+08:00 1970
Sat Apr 20 08:43:34 GMT+08:00 2019
其中第一个参数表示:1970-01-01 00:00:00到指定时间的毫秒数
第二个表示:当前时间。
使用Date将字符串转换为日期格式:Date的年月日是在1900-01的基础上来累加。因此,要现将字符串中的年月日切分出来,然后再使用Date表示。
示例如下:
//2. 出生日期
//2000-12-16->转化为date对象
//在1900-01的基础上来累加
String str = "2000-12-16";
//现将年月日切分出来
String[] arr = str.split("-");
int year = Integer.parseInt(arr[0]) - 1900;
int month = Integer.parseInt(arr[1]) - 1;
int day = Integer.parseInt(arr[2]);
//Date date = new Date(2000,12,16);
//如果某个类、方法、属性出现了删除线,并且有提示需要进行警告压制
//压制内容deprecation,表示这个类、方法、属性已过时
//已过时:指当前代码依然可以用,但是不推荐使用,在后续迭代版本中可能会被抛弃
@SuppressWarnings("deprecation")
Date date = new Date(year, month, day);
System.out.println(date);
二、使用DateFormat类的子类(SimpleDateFormat类)表示
因为使用Date类与字符串时间相互转化十分困难,因此,考虑Date类的其他子类。DateFormat是日期/时间格式化子类的抽象类,它与以语言无关的方式格式化并解析日期或时间,是抽象类,所以使用其子类SimpleDateFormat实现日期和字符串的相互转换。
public static void main(String[] args) throws Exception {
// 2000-12-16
// 2000/12/16
// 2000.12.16
// 12/16/2000
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将字符串转化为日期
Date date = sdf.parse("2000-12-16 16:52:39");
System.out.println(date);
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String str = sdf.format(date);
System.out.println(str);
}
三、Calendar类
java开发Calendar的目的是为了替换Date类,但是,该类设计的也是相当失败。仅有几个方法还值得使用一下。Calendar类是一个抽象类,不过提供了一个getInstance方法可以生成一个实例对象。通过该对象可以设置当前时间和获取日期。
public static void main(String[] args) {
// 创建Calendar对象
Calendar c = Calendar.getInstance();
System.out.println(c);
// 获取Hour属性的值
int hour = c.get(Calendar.HOUR);
System.out.println(hour);
c.set(Calendar.HOUR, 12);
// 获取Date对象的方法
Date d = c.getTime();
System.out.println(d);
}
Java中的日期表示类的更多相关文章
- Java中的日期处理类
在Java中可以使用Date类和Calendar类来处理日期 但是Date类很多方法都过时了,推荐使用Canlendar类来处理日期,并对日期的格式化做了介绍.下面的部分将会逐一介绍 Date类 Ja ...
- Java中的日期操作
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- Java中Date和Calender类的使用方法
查看文章 Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...
- 填坑:Java 中的日期转换
我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...
- 第七节:详细讲解Java中的日期,java.util.date
前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...
- Java中的日期和时间
Java中的日期和时间 Java在java.util包中提供了Date类,这个类封装了当前的日期和时间. Date类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date() 下面的构 ...
- Java中的日期操作 分类: B1_JAVA 2015-02-16 17:55 6014人阅读 评论(0) 收藏
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Delphi与Java中的日期互换
在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了.通过查阅资料,发现两 ...
随机推荐
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:基本的表格
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:文本框(Textarea)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- textarea不允许修改大小
参考:http://www.runoob.com/jsref/dom-obj-textarea.html resize:none;
- Restful API及接口安全
一.简介 REST(Representational State Transfer,具体状态转移),是一种基于HTTP协议.URI(统一资源定位符).JSON和XML这些现有协议与标准的,针对网络应用 ...
- Linux CentOS7 VMware正则介绍、grep工具、egrep表达式
一.正则介绍 正则是学习shell脚本的必学的内容,正则学的好坏直接影响到shell编程能力. 正则表达式:使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.通常用来检索和替换那些符合某个模式 ...
- SPringBootJPA的使用快速开发
一文搞懂如何在 Spring Boot 中正确使用 JPA JPA 这部分内容上手很容易,但是涉及到的东西还是挺多的,网上大部分关于 JPA 的资料都不是特别齐全,大部分用的版本也是比较落后的.另外, ...
- 记录下spingboot连接阿里云服务器上的MySQL数据库报错
错误大概如下: create connection SQLException, url: jdbc:mysql://'IP地址':3306/code007?useUnicode=true&ch ...
- 简单模拟IOC容器:返回对象并能抛出异常
本次要求:已知com.zzj.vo包下分别有Tiger.lion.Elephant三个Java源文件,请据此实现以下功能:①.自定义一个名为Component的注解,要求该注解只能用于类且代码运行时该 ...
- 关于导出Excel表中存在部门或用户数据权限问题
/** * 导出Controller */ @RequiresPermissions("xxx:weeklightlimit:download") @RequestMapping( ...
- memset函数总结
之前有一个程序栽在了memset函数上面,对memset函数一直耿耿于怀,于是想总结一下这个常用但是总出错的函数. memset在string.h文件中是这么定义的: void*代表这个函数的返回值可 ...