gpt4 book ai didi

java - 如何根据时区将java日期转换为日期对象?

转载 作者:行者123 更新时间:2023-11-29 10:05:46 26 4
gpt4 key购买 nike

所以我将时间戳保存为 Date 对象,将时区保存为 TimeZone 对象。

现在我想创建一个函数,它将一个 Date 对象和一个 TimeZone 对象作为参数,并返回一个使用时间戳。

例如:

输入:

Date    TimeZone 12:00   Moscow Standard Time (UTC+3)

输出:

Date 3:00    

编辑:删除了关于 Calendar

的注释

最佳答案

java.util.Date 是一个绝对时间点。 0900 小时 UTC1200 小时 UTC+3 是完全相同的 java.util.Date 对象。没有为了代表一个或另一个而对其进行“调整”。

要获得特定时区的人类可读表示,您可以在 DateFormat 对象上设置时区。

DateFormat format = new SimpleDateFormat("HH:mm");
format.setTimeZone(TimeZone.getTimeZone("UTC+3"));
String time = format.format(yourDate);

评论中提出的问题的解决方案:

Calendar cal1 = Calendar.getInstance(TimeZone.getTimeZone("UTC+3"));
cal1.setTime(yourDate);
Calendar cal2 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
cal2.clear();
cal2.set(Calendar.YEAR, cal1.get(Calendar.YEAR));
cal2.set(Calendar.MONTH, cal1.get(Calendar.MONTH));
cal2.set(Calendar.DATE, cal1.get(Calendar.DATE));
cal2.set(Calendar.HOUR_OF_DAY, cal1.get(Calendar.HOUR_OF_DAY));
//simile for whatever level of field precision is needed
Date shiftedDate = cal2.getTime();

关于java - 如何根据时区将java日期转换为日期对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496155/

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