gpt4 book ai didi

java - 无法获取 UTC 格式的日期

转载 作者:行者123 更新时间:2023-12-02 00:14:07 27 4
gpt4 key购买 nike

我编写了两个函数 - today()todayUTC() - 如下:

public static Date today() {
Calendar cal = Calendar.getInstance();
return cal.getTime();
}

public static Date todayUTC() {
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
return cal.getTime();
}

但是当我使用以下方法打印这些函数的结果时:

public void todayTest() {
Date date1 = OOTBFunctions.today();
System.out.println("today: "+date1);

Date dateUTC1 = OOTBFunctions.todayUTC();
System.out.println("todayUTC: "+dateUTC1);
}

我看到两个语句打印相同的值,即

today: Thu Aug 30 14:48:56 PDT 2012
todayUTC: Thu Aug 30 14:48:56 PDT 2012

任何人都可以建议我在获取本地时区日期的 UTC 函数中缺少什么吗?

最佳答案

Java 在打印时使用默认区域设置,这就是您看到该行为的原因。使用如下代码将其格式化并以您想要的区域设置/格式打印。记住

  • 当您创建 Date 对象时,它始终采用 UTC。
  • 显示用户所在区域的日期。
  • 以 UTC 格式存储日期。

代码

final SimpleDateFormat sdf = new SimpleDateFormat("the format you want");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
final String utcTime = sdf.format(new Date());

您不需要同时使用 Today() 和 TodayUTC() 方法。保留并如下所示

public static Date nowInUTC() 
{
return new Date();
}

您不需要测试任何东西。

关于java - 无法获取 UTC 格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206199/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com