时间操作

Date(long date) 

分配 Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数

 

SimpleDateFormat.parse(String source)

从给定字符串的开始解析文本,以生成一个日期。该方法不使用给定字符串的整个文本。返回解析字符串得到的 Date。

 //创建给定模式和默认语言环境的DateFormat对象

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    String stringDate = "2011-3-14 9:6:20"; //定义字符串类型的日期/时间

    System.out.println(stringDate);   //输出字符串类型的日期/时间

    Date date = null;      //定义Date对象

  date = df.parse(stringDate); //将字符串类型的日期/时间解析为Date类型

 

SimpleDateFormat(String pattern)

用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。注:此构造方法可能不支持所有语言环境。要覆盖所有语言环境,请使用 DateFormat 类中的工厂方法。

pattern - 描述日期和时间格式的模式

 

SimpleDateFormat.format(Date date)

将一个 Date 格式化为日期/时间字符串。

参数:

date - 要格式化为时间字符串的时间值。

返回:

已格式化的时间字符串。

 

Calendar

Calendar是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

Calendar.getTime() 
返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。

 

Calendar.getTimeInMillis()

返回此 Calendar 的时间值,以毫秒为单位。当前时间,以从历元至现在所经过的 UTC 毫秒数形式。

 

Date.getTime()

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

 

Date.getMonth()

返回表示月份的数字,该月份包含或开始于此 Date 对象所表示的瞬间。返回的值在 0 和 11 之间,值 0 表示 1 月。

这个方法被Calendar.get(Calendar.MONTH)所替代

 

几种方式之间的转换

1.Calendar 转化 String

Calendar calendat = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String dateStr = sdf.format(calendar.getTime());

 

2.String 转化Calendar

String str="2012-5-27";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Date date =sdf.parse(str);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

 

3.Date 转化String

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

String dateStr=sdf.format(new Date());

 

4.String 转化Date

String str="2012-5-27";

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

Date date= sdf.parse(str);

 

5.Date 转化Calendar

Calendar calendar = Calendar.getInstance();

calendar.setTime(new java.util.Date());

 

6.Calendar转化Date

Calendar calendar = Calendar.getInstance();

java.util.Date date =calendar.getTime();

 

7.String 转成 Timestamp

Timestamp ts = Timestamp.valueOf("2012-1-14 08:11:00");

 

8.Date  TimeStamp

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time = df.format(new Date());

Timestamp ts = Timestamp.valueOf(time);

new Date().getTime()          返回: 1481953167537

new Date()             返回: Sat Dec 17 13:40:12 GMT+08:00 2016

Calendar.getInstance()    返回:

[time=1481953297259,areFieldsSet=true,lenient=true,zone=Asia/Shanghai,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=11,WEEK_OF_YEAR=51,WEEK_OF_MONTH=3,DAY_OF_MONTH=17,DAY_OF_YEAR=352,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=41,SECOND=37,MILLISECOND=259,ZONE_OFFSET=28800000,DST_OFFSET=0]

 

Timestamp 解释

一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它通过允许小数秒到纳秒级精度的规范来添加保存 SQL TIMESTAMP 小数秒值的能力。Timestamp 也提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力。

计算 Timestamp 对象的精度为二者之一:

  • 19 ,其为 yyyy-mm-dd hh:mm:ss 格式下的字符数
  • 20 + s ,其为 yyyy-mm-dd hh:mm:ss.[fff...] 格式下的字符数,s 表示给定 Timestamp 的标度(其小数秒精度)。

注:此类型由 java.util.Date 和单独的毫微秒值组成。只有整数秒才会存储在 java.util.Date 组件中。小数秒(毫微秒)是独立存在的。传递不是 java.sql.Timestamp 实例的对象时,Timestamp.equals(Object) 方法永远不会返回 true,因为日期的毫微秒组件是未知的。因此,相对于 java.util.Date.equals(Object) 方法而言,Timestamp.equals(Object) 方法是不对称的。此外,hashcode 方法使用底层 java.util.Date 实现并因此在其计算中不包括毫微秒。

鉴于 Timestamp 类和上述 java.util.Date 类之间的不同,建议代码一般不要将 Timestamp 值视为 java.util.Date 的实例。Timestamp 和 java.util.Date 之间的继承关系实际上指的是实现继承,而不是类型继承。

猜你喜欢

转载自blog.csdn.net/xxdw1992/article/details/81109500