gpt4 book ai didi

Java Date + Calendar 给出的结果与预期不同

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

我有以下代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarTest {

public static void main(String[] args) {

try {

Calendar calendar = Calendar.getInstance();

Date _date = new SimpleDateFormat("ddMMyyyy").parse("13102014");
Date _time = new SimpleDateFormat("hhmmss").parse("201100");

calendar.setTimeInMillis(_date.getTime() + _time.getTime());

System.out.println(calendar.getTime()); // NOK 1 hour less

} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

为什么会产生:

Mon Oct 13 19:11:00 CEST 2014

而不是:

Mon Oct 13 20:11:00 CEST 2014

最佳答案

UTC 与 DST

因为 java.util.Date 在 UTC 下工作。但它的 toString 方法在生成日期时间值的字符串表示形式时,会混淆地应用 JVM 当前的默认时区。

我想您的 JVM 当前的默认时区是夏令时 (DST),因此需要进行小时调整。

24 小时制

此外,24 小时制的小时代码应为 HH,而不是 12 小时制的 hh

关于Java Date + Calendar 给出的结果与预期不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348140/

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