java中的时间操作 一

java中的时间操作一

 文/Ray

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 

 

 

相关文章:java中的时间操作,第二部分 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java时间操作可以使用Java标准库java.time包来完成。 Java 8之前,可以使用java.util.Datejava.util.Calendar类来操作时间。但是这两个类在设计上存在问题,因此在Java 8引入了新的时间API。 Java 8时间API提供了3个核心类:LocalDate、LocalTime和LocalDateTime。这些类都是不可变的,线程安全的,并且提供了许多方法来操作时间。 以下是一些常见的时间操作: 1. 获取当前时间 可以使用LocalDate、LocalTime或LocalDateTime类的now()方法来获取当前的日期/时间/日期时间。 示例代码: ```java LocalDate currentDate = LocalDate.now(); LocalTime currentTime = LocalTime.now(); LocalDateTime currentDateTime = LocalDateTime.now(); ``` 2. 时间格式化 可以使用DateTimeFormatter类来格式化时间。 示例代码: ```java LocalDateTime currentDateTime = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = currentDateTime.format(formatter); ``` 3. 时间比较 可以使用Java 8的新方法来比较时间。例如,使用LocalDate的isAfter()、isBefore()、isEqual()方法来比较两个日期之间的关系。 示例代码: ```java LocalDate date1 = LocalDate.of(2022, 1, 1); LocalDate date2 = LocalDate.of(2022, 1, 2); if (date1.isBefore(date2)) { System.out.println("date1 is before date2"); } else if (date1.isAfter(date2)) { System.out.println("date1 is after date2"); } else { System.out.println("date1 is equal to date2"); } ``` 4. 时间加减 可以使用Java 8的新方法来加减时间。例如,使用LocalDate的plus()、minus()方法来增加或减少指定的天数。 示例代码: ```java LocalDate currentDate = LocalDate.now(); LocalDate nextDay = currentDate.plusDays(1); LocalDate lastDay = currentDate.minusDays(1); ``` 以上是Java的一些时间操作,希望能对你有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值