Java 将当前东部时间与东部时间下午2点进行比较?怎么用?

Java 将当前东部时间与东部时间下午2点进行比较?怎么用?,java,time,timezone,Java,Time,Timezone,我有一段代码,它将返回当前的EST Date easternTime = new Date(); DateFormat format = new SimpleDateFormat("h:mm a"); format.setTimeZone(TimeZone.getTimeZone("EST")); return format.format(easternTime); 假设它返回x=12:15PM 我想将x与美国东部时间下午3点进行比较,看看x是在美国东部时间下午3点之前还是之后,和/或是在美国

我有一段代码,它将返回当前的EST

Date easternTime = new Date();
DateFormat format = new SimpleDateFormat("h:mm a");
format.setTimeZone(TimeZone.getTimeZone("EST"));
return format.format(easternTime);
假设它返回
x=12:15PM

我想将
x
与美国东部时间下午3点进行比较,看看x是在美国东部时间下午3点之前还是之后,和/或是在美国东部时间下午3点到下午6点之间。有没有办法做到这一点

我们不必使用
java.util.date
。我也会用
日历
来解决问题

我肯定会用日历来解决问题。如果您真的想使用内置API实现这一点,则需要使用
日历
来查找特定时区中的本地时间,但Joda会使其简单得多

您可以使用位于特定时区的,并且可能从中获取
LocalTime
,与您硬编码(或从配置文件等读取)的
LocalTime
进行比较。

我肯定会改为这样做。如果您真的想使用内置API实现这一点,则需要使用
日历
来查找特定时区中的本地时间,但Joda会使其简单得多


您可以使用位于特定时区的,并可能从中获取
LocalTime
,与您硬编码(或从配置文件等读取)的
LocalTime
进行比较。

您应该使用日期对象,而不是使用字符串。要进行比较,请使用date.after和date.before方法

应该使用日期对象而不是字符串。要进行比较,请使用date.after和date.before方法

我知道
Calendar
实例的创建成本特别高。你认为Joda Time在性能和资源方面更好吗?@Harry:可能是-但是当你说它“特别昂贵”时,你的意思是你在担心它之前已经对你的应用程序进行了分析/基准测试,并检查了这是否真的是一个性能问题?(无可否认,Joda Time可能会更快。不过,我会使用它作为更好的API…)我正在阅读Bloch的
高效Java
,在
第5项中,Bloch提到
日历
特别贵,因此,Bloch建议将变量从
local
更改为
static final
字段,以避免创建对象。所以我只是想知道乔达时间和日历的比较。创建allI know
Calendar
实例的成本特别高。你认为Joda Time在性能和资源方面更好吗?@Harry:可能是-但是当你说它“特别昂贵”时,你的意思是你在担心它之前已经对你的应用程序进行了分析/基准测试,并检查了这是否真的是一个性能问题?(无可否认,Joda Time可能会更快。不过,我会使用它作为更好的API…)我正在阅读Bloch的
高效Java
,在
第5项中,Bloch提到
日历
特别贵,因此,Bloch建议将变量从
local
更改为
static final
字段,以避免创建对象。所以我只是想知道乔达时间和日历的比较。就这些