java中时间类型转化以及由已知日期得到所需日期

一、java中时间类型转化

1、String转为Date

在java中写以下方法:


运行后得到的输出为:

Sun Mar 18 15:24:37 CST 2018


2、Date转为String

在java中写以下方法


扫描二维码关注公众号,回复: 1002613 查看本文章

得到的输出结果为:2018-03-17 16:01:13


在String和Date互相转化中需要注意的是:

(1)在java的基本类型中,没有Date类型,Date是java中的一个封装类,所以获取当前时间我们需要用Date date=new Date()来获取。

(2)SimpleDateFormat是一个以国别敏感的方式格式化和分析数据的具体类。它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。

(3)在new SimpleDateFormat后的括号中我们可以输入任意我们想要得到的时间格式,例如"yyyy-M-dd","yyyy-M-d H:m:s"等。其中yyyy代表的是年份,MM为月份,dd为当月几号,其中MM为月需大写、因为它需要和分区分开。而HH大写则表示24小时制,如果是小写的hh则表示12小时制。HH:mm:ss和H:m:s的区分在于是否有前导零。例如5时4分8秒,HH:mm:ss则显示为05:04:08,而H:m:s则显示为5:4:8。


3、String和Timestamp的转化

写如下方法


得到结果为:2017-09-24 17:29:35.0


4、Timestamp和String的转化


得到的结果为2018/03/17 17:13:43


在String和Timestamp互相转化中需要注意的是:

(1)System.currentTimeMillis()获得的时间是自1970-01-01 00:00:00.000到当前时刻的时间距离,类型为long

(2)因为Timestamp为long类型,所以在转为String的时候也可以直接toString()。在上例中为trString=ts.toString();


5、Timestamp转为Date以及Date转为Timestamp

这两个类型不能直接转换,需要利用中间值String类型来转换,具体实现方法可以参照以上4个例子中的方法,结合起来即可。


二、java根据已知日期查询所需日期

这里需要介绍一个java中的类Calendar:

        在java中Calendar是一个抽象类,专门对日期来进行操作,不能通过new对象来获取实例。所以,Calendar提供了一个类方法为getInstance,Calendar date=Calendar.getInstance()会返回一个Calendar子类对象

基本用法:

Calendar calendar = Calendar.getInstance();

获取年 calendar.get(Calendar.YEAR);

获取月 month = calendar.get(Calendar.MONTH) + 1;(月份是从0开始算的)

获取日 day = calendar.get(Calendar.DAY_OF_MONTH);

获取时 hour = calendar.get(Calendar.HOUR);

获取分 minute = calendar.get(Calendar.MINUTE);

获取秒 second = calendar.get(Calendar.SECOND);

获取星期 int weekday = calendar.get(Calendar.DAY_OF_WEEK);(每周是从周日开始算的)

下面举几个例子:

1、根据已知日期查询昨天日期


得到的结果为:2018-03-16

其中setTime中类型必须为Date,prelastDayCal.add(Calendar.DAY_OF_MONTH, -1)表示获取时间减一天。


2、根据已知日期查询上周的周一到周天


得到结果为2018-03-05         2018-03-11

cal.get(Calendar.DAY_OF_WEEK)是为了获得当前日期是一个星期的第几天 。因为每周是从周日开始算的,所以获得周一需要加一天,同理,获取周六需要减5天。


3、根据已经月份查询上个月


得到的结果为2018-2

猜你喜欢

转载自blog.csdn.net/zeternityyt/article/details/79582153