我试图使用Joda Time找到2次之间的差异。我已经尝试过使用这里的一些示例,但无法获得返回值。以下是我尝试的内容:时间是17:23这样的格式,来往变量的时区是America / Los_Angeles或Europe / London
DateTime dtFrom = DateTime.now()
DateTime dtTo = new DateTime(dtFrom.withZone(DateTimeZone.forID(to)));
//calculate time difference
Period period = new Period(dtTo, dtFrom) ;
Minutes minutes = Minutes.minutesBetween(dtFrom, dtTo);
long diffInMillis = dtFrom.getMillis() - dtTo.getMillis();
我尝试使用不同的方法来比较这两个并且总是没有返回值...句点返回PT0S,分钟返回PT0M,diffInMillis返回0.我在这里做错了什么?谢谢!
答案 0 :(得分:2)
您正在使用自1970-01-01T00:00Z以来以毫秒为单位定义为保留(POSIX)即时的方法withZone()。因此,dtFrom
和dtTo
仍然具有相同的即时意义,即它们描述相同的全球时间,尽管它们的本地时间表示由于不同的时区而不同。
结果:无论您使用哪个时间单位,两个相同时刻之间的差异都恰好等于零。
但是,如果您对本地时差感兴趣,请确定区域偏移差异,例如使用getOffset()方法。