【问题标题】:Android get current eastern standard timeAndroid获取当前东部标准时间
【发布时间】:2014-04-23 14:31:05
【问题描述】:

我想获取东部标准时间/EST 当前时间,但它一直显示我的当前时间... 知道我做错了什么吗?

DateFormat format = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
        TimeZone utc = TimeZone.getTimeZone("America/New_York");
        GregorianCalendar gc = new GregorianCalendar(utc);
        Date now = gc.getTime();
        String strDateString = format.format(now);

【问题讨论】:

    标签: java android simpledateformat android-date


    【解决方案1】:

    Date 类旨在反映协调世界时 (UTC),因此它不反映您在 GregorianCalendar 中使用的时区。同样默认SimpleDateFormat 使用系统默认时区,如果你想覆盖它,你应该明确地这样做:

    DateFormat format = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
    TimeZone la = TimeZone.getTimeZone("America/Los_Angeles");
    format.setTimeZone(la);
    

    另一种选择是切换到 Joda 时间库:

    DateTimeZone la = DateTimeZone.forTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
    DateTimeFormat.forPattern(dateTimeFormat).withZone(la).print(System.currentTimeMillis());
    

    【讨论】:

      猜你喜欢
      • 2012-07-12
      • 2011-12-26
      • 1970-01-01
      • 2014-01-23
      • 2012-10-29
      • 2013-03-19
      • 2016-08-31
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多