Java中获取时间的几种方法

来源:互联网 发布:uuu网络加速器下安卓 编辑:程序博客网 时间:2024/05/18 00:44

Java中关于时间的操作主要是:
1、获取当前时间,和某个时间进行比较。此时主要拿long型的时间值。
 方法如下:
 
要使用 
java.util.Date 。获取当前时间的代码如下

Date date = new Date();

date.getTime() ;

还有一种方式,使用 System.currentTimeMillis() ;
都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数

2、获取某种格式的日期。
方法:

获取时间的格式,需要用到一个专门用于时间格式的类 java.text.SimpleDateFormat 

首先,定义一个 SimpleDateFormat 变量

SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);

这个构造函数的定义如下:

SimpleDateFormat(String   pattern, Locale   locale)

第一个参数 pattern ,我们后面再解释,这里我们使用一个 "", 第二个参数,是用来设置时区的,这里用到了 java.util.Locale 这个类,这个类了面定义了很多静态变量,直接拿过来用就 OK ,我们把时区设置为 Locale.SIMPLIFIED_CHINESE ,只看名字,这个静态变量的意义已经很清楚了。

 

接下来我们使用这个 SimpleDateFormat 把当前时间格式化为一个如下格式的时间字符串“ XXXX  XX  XX  _XX  XX  XX 秒”,代码:

sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");

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

 

获取时间格式的函数是 format ,这个函数的参数是 java.util.Date 对象,这个没有什么花头。

要说明一下的是这个 pattern ,所谓的模式。这里, yyyy,MM,dd 等,这就是模式。

我们可以在 SimpleDateFormat 的构造函数中指定模式,比如

SimpleDateFormat sdf = new SimpleDateFormat(" yyyy-MM-dd ",Locale.SIMPLIFIED_CHINESE);

也可以获取时间格式的时候使用applyPattern函数临时指定,上面的例子就是这样。

什么字符代表什么,这是 j2se 约定好的,设置模式的时候,我们可以使用约定好的字符加上任何我们想要的字符串。

j2se 对字符所代表的模式的约定列表如下:

 

 

LetterDate or Time ComponentPresentationGEra designatorTextyYearYearMMonth in yearMonthwWeek in yearNumberWWeek in monthNumberDDay in yearNumberdDay in monthNumberFDay of week in monthNumberEDay in weekTextaAm/pm markerText HHour in day (0-23)NumberkHour in day (1-24)NumberKHour in am/pm (0-11) Numberh  Hour in am/pm (1-12) Numberm  Minute in hour Numbers  Second in minute NumberS  Millisecond Number  z  Time zone  General time zone Z  Time zone RFC 822 time zone 

原创粉丝点击