如何在Java项目中使用时间日期API

  介绍

这篇文章主要介绍了如何在Java项目中使用时间日期API,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序。

世界上所有的计算机内部存储时间都使用一个长类型的整数,而这个整数的值就是相对于英国格林尼治标准时间(1970年1月1日0时0分0秒)的毫秒数例。如:

public  static  void  main (String [], args) {//才能January  1, 1970, 00:00:00 格林尼治时间。   Date 才能;Date =, new 日期(1000);   System.out.println才能(日期);   }

输出结果:

//1970 - 1 - 1, 8:00:01   Thu  Jan  01, 08:00:01  CST  1970年

很多人可能会疑惑,1000表示的是距离标准时间往后1秒,那为什么时间却多走了八个小时?

这和“时”区有关系,如果你位于英国的格林尼治区,那么结果会如预想一样,但是我们位于中国东八区,时间要早八个小时,所以不同时区基于的基础值不同。

日期这个类以前真的扮演过很多角色,从它的源码就可以看出来,有可以操作时刻的方法,有可以操作年月日的方法,甚至它还能管时区。可以说,日期时间的相关操作有它一个人就足够了。

但这个世界就是这样,你管的东西多了,自然就不能面面俱到,日期中很多方法的设计并不是很合理,之前我们也说了,甚至有点反人类,所以,现在的日期类中接近百分之八十的方法都已废弃,被标记为@Deprecated。

太阳公司给日期的目前定位是,唯一表示一个时刻,所以它的内部应该围绕着那个整型的毫秒,而不再着重于各种年历时区等信息。

日期允许通过以下两种构造器实例化一个对象:

private  transient  long  fastTime;      public 日期(),{   这才能(System.currentTimeMillis ());   }      public 日期(long 日期),{   时间=fastTime 才能;日期;   }

这里的fastTime属性存储的就是时刻所对应的毫秒数,两个构造器还是很简单,如果调用的是无参构造器,那么虚拟机将以系统当前的时刻值对fastTime进行赋值。

还有几个为数不多没有被废弃的方法:

<李>

公共取得时间长():返回内部存储的毫秒数

<李>

公共空凝固时间(长时间):重新设置内存的毫秒数

<李>

公共布尔在(日期):比较给定的时刻是否早于当前日期实例

<李>

公共布尔在(日期):比较给定的时刻是否晚于当前日期实例

还有两个方法是jdk1.8以后新增的,用于向Java 8新增接口的转换,待会介绍。

,描述年历的日历

日历用于表示年月日等日期信息,它是一个抽象类,所以一般通过以下四种工厂方法获取它的实例对象。

public  static  Calendar  getInstance ()      public  static  Calendar  getInstance (TimeZone 区)      public  static  Calendar  getInstance (Locale  aLocale)      public  static  Calendar  getInstance (TimeZone 区,Locale  aLocale)

其实内部最终会调用同一个内部方法:

private  static  Calendar  createCalendar (TimeZone 区,Locale  aLocale)

该方法需要两个参数,一个是时区,一个是国家和语言,也就是说,构建一个日历实例最少需要提供这两个参数信息,否则将会使用系统默认的时区或语言信息。

因为不同的时区与国家语言对于时刻和年月日信息的输出是不同的,所以这也是为什么一个日历实例必须传入时区和国家信息的一个原因。看个例子:

public  static  void  main (String [], args) {         Calendar 才能;Calendar =, Calendar.getInstance ();   System.out.println才能(calendar.getTime ());      Calendar 才能;calendar1 =Calendar.getInstance   ,,,,,(TimeZone.getTimeZone (“GMT"), Locale.ENGLISH);   ,,System.out.println (calendar1.get (Calendar.YEAR), +,“:“, +   ,,,,,,,,,,,calendar1.get (Calendar.HOUR), +,“:“+   ,,,,,,,,,,,calendar1.get (Calendar.MINUTE));   以前,,}

输出结果:

Sat  Apr  21, 10:32:20  CST  2018   2018:2:32

如何在Java项目中使用时间日期API