Java 日期差异包括时区偏移,什么';怎么了?
我有以下代码:Java 日期差异包括时区偏移,什么';怎么了?,java,datetime,date,simpledateformat,Java,Datetime,Date,Simpledateformat,我有以下代码: Date now = new Date(); // the string is in UTC format, so a UTC date must be constructed, I don't know if that happens in this format Date measure = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(utcDateTime); long diff = now.getTime() -
Date now = new Date();
// the string is in UTC format, so a UTC date must be constructed, I don't know if that happens in this format
Date measure = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(utcDateTime);
long diff = now.getTime() - measure.getTime();
if (diff < 1000* 60 * 15) {
// measure is less then 15 minutes recent
do some work
}
datenow=新日期();
//字符串是UTC格式的,所以必须构造UTC日期,我不知道这种格式是否会发生
日期度量=新的SimpleDataFormat(“yyyy-MM-dd HH:MM:ss”).parse(utcDateTime);
long diff=now.getTime()-measure.getTime();
如果(差值<1000*60*15){
//测量值最近不到15分钟
做些工作
}
当我得到差异时,它包括时区。我知道日期对象内部是UTC
那么这里出了什么问题?虽然
日期
对象确实在UTC中,但您的SimpleDataFormat
可能不在UTC中。我怀疑这是默认的系统时区-这当然是实验所建议的。您可以使用DateFormat.setTimeZone
更改此设置。因此,如果文本表示UTC日期/时间,则还应将格式化程序的时区设置为UTC
或者您可以使用,这是一个通常更好的日期和时间API:)谢谢,我会记住Joda time,尽管我不知道是否适用于Java 1.5和Android。