【问题标题】:Convert default timezone to UTC [duplicate]将默认时区转换为 UTC [重复]
【发布时间】:2016-08-09 07:44:04
【问题描述】:

我在“EDT”的系统时区创建了日历对象。当我收到cal.getTime(); 时,它会打印 EDT 的日期。如何在 UTC 中获取同一日历的日期?

我只是想使用下面的 sn-p 将其转换为字符串

   `Calendar cal = Calendar.getInstance();      
    String definedDate = CalendarUtils.toString(cal, "MM/dd/yyyy");
    System.out.println(definedDate); 


public static String toString(Calendar cal, String pattern) {
    String str = "";
    if (cal!= null) {
        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
        str = dateFormat.format(cal.getTime());
        LOGGER.error("Date : "+str);
    }
    return str;
}

`

【问题讨论】:

  • 有一个简单的直接方法可以做到这一点,请参阅链接的问题。

标签: java calendar


【解决方案1】:

试试下面的代码,将时区设置为 DateFormat as DateFormat.setTimeZone():

TimeZone timeZone = TimeZone.getTimeZone("UTC");
Calendar calendar = Calendar.getInstance(timeZone);
SimpleDateFormat simpleDateFormat = 
       new SimpleDateFormat("EE MMM dd HH:mm:ss zzz yyyy", Locale.US);
simpleDateFormat.setTimeZone(timeZone);

System.out.println("Time zone: " + timeZone.getID());
System.out.println("default time zone: " + TimeZone.getDefault().getID());
System.out.println();

System.out.println("UTC:     " + simpleDateFormat.format(calendar.getTime()));
System.out.println("Default: " + calendar.getTime());

【讨论】:

  • 是的,它有效。感谢您的输入。我们如何在 UTC 实例中获得相同的日历。这里我们将其转换为字符串。
  • 如果对您有用,请将其标记为已解决。 simpleDateFormat.parse("Date in String Format") 应该适合你。
【解决方案2】:

使用下面的 sn-p 获取日历实例...

Calendar cal= Calendar.getInstance(TimeZone.getTimeZone("UTC"));

或将时区更改为 utc,如下所示...

cal.setTimeZone(TimeZone.getTimeZone("UTC"));

【讨论】:

  • 它只转换时区。日期和时间与系统时区保持一致
【解决方案3】:
Calendar c2 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
c2.set(year, month, date, hourOfDay, minute, second);
System.out.println(sdf.format(c2.getTime()));

【讨论】:

  • 虽然此代码可能有助于解决问题,但提供有关 why 和/或 如何 回答问题的额外上下文将显着改善其长期长期价值。请edit您的答案添加解释,包括适用的限制和假设。
猜你喜欢
  • 2020-08-31
  • 2016-10-16
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 2020-07-08
  • 2020-03-21
  • 1970-01-01
  • 2021-08-01
相关资源
最近更新 更多