gpt4 book ai didi

java - 日历类和更改时区冲突

转载 作者:行者123 更新时间:2023-12-01 18:23:25 25 4
gpt4 key购买 nike

我想将日期格式作为yyyy-mm-ddT00:00:00不同时区作为输出。但在这里我得到了日历日期输出中的默认时区。

Code part as:-
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.set(Calendar.YEAR, 2014);
cal.set(Calendar.MONTH, Calendar.NOVEMBER);
cal.set(Calendar.DATE, 18);
cal.set(Calendar.HOUR, 20);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
System.out.println("DateTime : " + cal.getTime()+ " \n Zone :: "+ calFrom.getTimeZone().getDisplayName());

输出为:

DateTime : Wed Nov 19 05:30:00 IST 2014 
Zone :: Greenwich Mean Time

在这里,我将时区设置为GMT,但在日期中它显示IST以及如何将其转换为对应的2014-11-19T00:00:00更改后的时区。

最佳答案

I would like to get the date format as yyyy-mm-ddT00:00:00 and different TimeZone as an output.

然后您需要使用某种描述的DateFormat,例如SimpleDateFormat。特别是,DateFormat 知道:

  • 格式
  • 用于月份名称等内容的区域设置
  • 时区
  • 日历系统

Date - 这是 Calendar.getTime() 返回的内容 - 不知道其中的任何内容。它仅代表一个时间点,可以用多种不同的方式来表示。

你可能想要这样的东西:

TimeZone zone = TimeZone.getTimeZone("Etc/UTC");
Calendar cal = Calendar.getInstance(zone);
cal.clear(Calendar.MILLISECOND);
cal.set(2014, Calendar.NOVEMBER, 18, 20, 0, 0); // Why 20 if you want an hour of 0?

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US);
format.setTimeZone(zone);

String text = format.format(cal.getTime());

关于java - 日历类和更改时区冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001959/

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