服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java中的时间操作

java中的时间操作不外乎这四种情况:

1、获取当前时间

2、获取某个时间的某种格式

3、设置时间

4、时间的运算

好,下面就针对这三种情况,一个一个搞定。

 

一、获取当前时间

 

有两种方式可以获得,第一种,使用date类。

j2se的包里有两个date类,一个是java.sql.date,一个是java.util.date

这里,要使用java.util.date。获取当前时间的代码如下

date date = new date();

date.gettime();

还有一种方式,使用system.currenttimemillis();

 

这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。

当前的时间得到了,但实际的应用中最后往往不是要用这个long型的东西,用户希望得到的往往是一个时间的字符串,比如“2006618号”,或“2006-06-18”,老外可能希望得到的是“06-18-2006”,诸如此类等等。这就是下一个要解决的问题

 

二、获取某个时间的某种格式

 

获取时间的格式,需要用到一个专门用于时间格式的类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把当前时间格式化为一个如下格式的时间字符串“xxxxxxxx_xxxxxx秒”,代码:

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 component presentation
gera designator text
yyear year
m month in year month
w week in year number
w week in month number
d day in yearnumber
d day in month number
f day of week in month number
e day in week text
a am/pm marker text 
h hour in day (0-23)number
k hour in day (1-24)number
k hour in am/pm (0-11) number
h  hour in am/pm (1-12) number
m  minute in hour number
s  second in minute number
s  millisecond number  
z  time zone  general time zone 
z  time zone rfc 822 time zone 

扫描关注微信公众号