Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Date类与java中的System.currentTimeMillis()进行比较_Java_Date_Time - Fatal编程技术网

如何将Date类与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

如何比较像“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()
而不是
Date
对象中的
getSeconds()

getSeconds
不返回自历元以来的秒数。它返回
Date
实例的秒数(以分钟为单位)

所以我想你需要的是:

if (object.getDate().getTime() > System.currentTimeMillis())

getSeconds
不返回自epoch以来的秒数。它返回
Date
实例的秒数(以分钟为单位)

所以我想你需要的是:

if (object.getDate().getTime() > System.currentTimeMillis())

你应该依赖一个好的日期时间库,而不是用系统毫秒来计算

现在(2013),意思是2.3。在java 8中,考虑从JSR 310移动到新的java .Time.*类。这些类是由JoDA时间启发的,但完全是重新构建的。 Joda Time提供了方法
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:错误

你应该依赖一个好的日期时间库,而不是自己计算系统毫秒数

现在(2013),意思是2.3。在java 8中,考虑从JSR 310移动到新的java .Time.*类。这些类是由JoDA时间启发的,但完全是重新构建的。 Joda Time提供了方法
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?