我正在做与
US NYSE & NASDAQ stock market
相关的Android编程。到目前为止我知道他们使用的是东部时间(ET)。股市于东部时间上午 9.30 开盘,下午 4 点收盘。
为了检查股市当前开盘/收盘,我想检查当前时间是否在上午 9.30 至下午 4 点之间。
以下代码是否正确,以获取 ET 时区的用户时间?
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("US/Eastern"));
据我所知,东部时间 (ET) 实行夏令时。在夏季,它使用 EDT(UTC-4),而在冬季,它使用 EST(UTC-5)。那么纽约证券交易所和纳斯达克使用的是 ET 时区吗?
我想确保我对上午 9.30 至下午 4 点的比较使用的是与纽约证券交易所和纳斯达克股票市场相同的时区。
根据 IANA 维护的 tzdb,我会选择“America/New_York”,而不是过时的 ID“US/Eastern”。
该时区考虑了夏季(但不包括冬季)的夏令时,因此可以全年应用。
维基百科表明纽约证券交易所和纳斯达克股票市场也使用这个时区。
顺便说一句,我会使用
new GregorianCalendar()
而不是 Calendar.getInstance()
来确保您获得正确的日历(如果您在泰国,则相关)。
评估开路条件可能如下所示(当地时间“9:30/16:00”的半开区间):
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
boolean open = (hour > 9 || (hour == 9 && minute >= 30)) && (hour < 16);
在与美国股市时间相关的 Java 日历时区设置中,应使用“美国/纽约”来代表东部时间 (ET)。使用股票新闻应用程序获取实时见解和更新,了解最新的股市新闻。