如何将Date类与java中的System.currentTimeMillis()进行比较
如何比较像“2013-12-09 00:00:00”这样的对象日期是否大于java中的实际时间(System.currentTimeMillis())如何将Date类与java中的System.currentTimeMillis()进行比较,java,date,time,Java,Date,Time,如何比较像“2013-12-09 00:00:00”这样的对象日期是否大于java中的实际时间(System.currentTimeMillis()) 您可以使用if(object.getDate().after(Calendar.getInstance().getTime()){您可以使用if(object.getDate().after(Calendar.getInstance().getTime()){调用getTime()而不是Date对象中的getSeconds()。调用getTime
您可以使用
if(object.getDate().after(Calendar.getInstance().getTime()){
您可以使用if(object.getDate().after(Calendar.getInstance().getTime()){
调用getTime()
而不是Date
对象中的getSeconds()
。调用getTime()
而不是Date
对象中的getSeconds()
。getSeconds
不返回自历元以来的秒数。它返回Date
实例的秒数(以分钟为单位)
所以我想你需要的是:
if (object.getDate().getTime() > System.currentTimeMillis())
getSeconds
不返回自epoch以来的秒数。它返回Date
实例的秒数(以分钟为单位)
所以我想你需要的是:
if (object.getDate().getTime() > System.currentTimeMillis())
你应该依赖一个好的日期时间库,而不是用系统毫秒来计算
isBefore
和isAfter
,这正是您进行比较所需要的
您的问题无法解决时区问题。因此,对于下面的示例代码,我假设您给定的日期时间为/GMT。如果不是这样,请通过将对withZoneUTC()
的调用更改为另一个withZone
方法来调整代码
/©2013 Basil Bourque。此源代码可由任何对此承担全部责任的人免费永久使用。
//导入org.joda.time.*;
//导入org.joda.time.format.*;
DateTimeFormatter formatter=org.joda.time.format.DateTimeFormat.forPattern(“yyyy-MM-dd”HH:MM:ss”);
DateTime dateTimeInUTC=格式化程序.withZoneUTC().parseDateTime(“2013-12-09 00:00:00”);
DateTime now=新的DateTime();
布尔值isFuture=(dateTimeInUTC.isAfter(现在));
System.out.println(“dateTimeInUTC:+dateTimeInUTC”);
System.out.println(“now:+now”);
System.out.println(“现在在UTC:+now.toDateTime(DateTimeZone.UTC));
System.out.println(“isFuture:+isFuture”);
当运行时
dateTimeInUTC:2013-12-09T00:00:00.000Z
现在:2013-12-09T23:46:05.902-08:00
现在UTC:2013-12-10T07:46:05.902Z
isFuture:错误
你应该依赖一个好的日期时间库,而不是自己计算系统毫秒数
isBefore
和isAfter
,这正是您进行比较所需要的
您的问题无法解决时区问题。因此,对于下面的示例代码,我假设您给定的日期时间为/GMT。如果不是这样,请通过将对withZoneUTC()
的调用更改为另一个withZone
方法来调整代码
/©2013 Basil Bourque。此源代码可由任何对此承担全部责任的人免费永久使用。
//导入org.joda.time.*;
//导入org.joda.time.format.*;
DateTimeFormatter formatter=org.joda.time.format.DateTimeFormat.forPattern(“yyyy-MM-dd”HH:MM:ss”);
DateTime dateTimeInUTC=格式化程序.withZoneUTC().parseDateTime(“2013-12-09 00:00:00”);
DateTime now=新的DateTime();
布尔值isFuture=(dateTimeInUTC.isAfter(现在));
System.out.println(“dateTimeInUTC:+dateTimeInUTC”);
System.out.println(“now:+now”);
System.out.println(“现在在UTC:+now.toDateTime(DateTimeZone.UTC));
System.out.println(“isFuture:+isFuture”);
当运行时
dateTimeInUTC:2013-12-09T00:00:00.000Z
现在:2013-12-09T23:46:05.902-08:00
现在UTC:2013-12-10T07:46:05.902Z
isFuture:错误
您的对象是什么类型的
?日期时间在哪个时区?或者是/GMT?您的对象是什么类型的
?日期时间在哪个时区?或者是/GMT?