java 日期类_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= newDate();

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= newDate(year, month, day);

System.out.println(date);

二、使用DateFormat类的子类(SimpleDateFormat类)表示

因为使用Date类与字符串时间相互转化十分困难,因此,考虑Date类的其他子类。DateFormat是日期/时间格式化子类的抽象类,它与以语言无关的方式格式化并解析日期或时间,是抽象类,所以使用其子类SimpleDateFormat实现日期和字符串的相互转换。

public static void main(String[] args) throwsException {//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= newDate();

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 voidmain(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);

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值