Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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
Java 日期差异包括时区偏移,什么';怎么了?_Java_Datetime_Date_Simpledateformat - Fatal编程技术网

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。