有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的不同时区

How to get date based on the different time zone in java 1.7 ?

  AST
    EST
    CST
    MST
    PST
    AKST
    HAST

我已经分析了API。根据我的理解,我们需要传递日期格式/城市来获取时间,请参考下面给出的示例代码来获取EST

static DateTimeFormatter etFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mma 'ET'");
  static ZoneId etZoneId = ZoneId.of("America/New_York");
ZonedDateTime currentETime = currentISTime.withZoneSameInstant(etZoneId);

我需要通过日期格式和城市来获取时间吗?有没有根据时区来计算时间的通用方法


共 (1) 个答案

  1. # 1 楼答案

    真实时区

    EST、IST、PST、CST等2-4个字母的缩写是而不是时区。它们只是给出了时区的线索,并指出是在标准时间还是夏令时(DST)。它们没有标准化。它们甚至不是独一无二的!永远不要使用这些,不要再去想它们

    有关Continent/Region格式的真实时区名称列表,请参见维基百科

    您的示例代码几乎是正确的

    ZoneId z = ZoneId.of( "America/New_York" ) ;
    ZonedDateTime zdt = ZonedDateTime.now( z ) ;
    

    对于UTC中看到的同一时刻,提取一个Instant

    Instant instant = zdt.toInstant() ;
    

    适应印度时间

    ZonedDateTime zdtKolkata = instant.atZone( ZoneId.of ( "Asia/Kolkata" ) ) ;
    

    要生成本地化字符串,请使用DateTimeFormatter.ofLocalized…

    关于堆栈溢出,已经讨论过数百次了。搜索更多信息

    三个十后端口

    如果您的问题是关于如何在使用上述Java 7时执行此类代码,那么解决方案是来自Three Ten Backport项目的库。你会发现大部分的java。时间功能与几乎相同的API