Java将时间与时区进行比较



我的表有一列,其数据类型是带时区的时间戳。数据库中的值类似于

  • 26-NOV-01 12.00.00.000000000 PM -07:00
  • 26-NOV-01 12.00.00.000000000 PM -08:00

我有一台运行在UTC时区的tomcat服务器。我知道如何比较具有相同时区的两个日期,但我不知道是否可以将服务器时间与具有时区详细信息(如-7.00-8.00+5:30)的数据库时间进行比较。

在java中有没有一种方法可以将时间从数据库转换为公共时区,然后将其与另一个时间进行比较?

您可以使用joda-time方便地将偏移量和日期解析为公共时间(例如UTC)。

以你的帖子中提到的2个时间实例为例:

String time1 = "26-NOV-01 12.00.00.000000000 PM -07:00";
String time2 = "26-NOV-01 12.00.00.000000000 PM -08:00";
DateTimeFormatter parser = DateTimeFormat.forPattern("dd-MMM-yy hh.mm.ss.SSSSSSSSS aa Z").withZoneUTC(); // joda time date time formatter instance with a common UTC timezone
System.out.println(parser.parseDateTime(time1)); // parse to date time - gives: 2001-11-26T19:00:00.000Z
System.out.println(parser.parseDateTime(time2)); // parse to date time - gives: 2001-11-26T20:00:00.000Z
System.out.println(parser.parseDateTime(time2).compareTo(parser.parseDateTime(time1))); // Comparing both the times here - gives: 1

在这里,您可以比较具有不同偏移的2个时间,并将它们标准化为一个公共时区。同样,您可以选择自己选择的时区,并方便地处理这些时间实例。

相关内容

  • 没有找到相关文章

最新更新