gpt4 book ai didi

java - 将日历转换为 java.util.Date 时出现问题

转载 作者:行者123 更新时间:2023-11-30 05:58:37 26 4
gpt4 key购买 nike

我需要创建一个具有澳大利亚时区的 java.util.Date 对象。下游组件中使用的标记库需要此对象(因此我坚持使用日期)。

这是我尝试过的:

TimeZone timeZone = TimeZone.getTimeZone("Australia/Sydney");
GregorianCalendar defaultDate = new GregorianCalendar(timeZone);
Date date = defaultDate.getTime();

但是,“date”始终返回当前本地时间(在我的例子中为 ET)。我在这里做错了什么?是否可以设置具有不同时区的 Date 对象?

更新:

感谢您的回复!如果我想将格式化日期输出为字符串,则此方法有效,但如果我想返回日期对象,则此方法无效。例如:

Date d = new Date();
DateFormat df = new SimpleDateFormat();
df.setTimeZone(TimeZone.getTimeZone("Australia/Sydney"));

String formattedDate = df.format(d); // returns Sydney date/time
Date myDate = df.parse(formattedDate); // returns local time(ET)

我想我最终会重新设计我们的日期标签库。

最佳答案

Is it even possible to set a Date object with a different timezone?

不,这是不可能的。正如其javadoc描述,所有 java.util.Date contains 只是纪元时间,它始终是相对于 1970 年 1 月 1 日 UTC/GMT 的秒数。 Date 不包含其他信息。要使用时区对其进行格式化,请使用 SimpleDateFormat#setTimeZone()

关于java - 将日历转换为 java.util.Date 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129906/

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