gpt4 book ai didi

java - 时间戳更改日期

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

我使用以下服务器代码从用户获取时间戳的文本表示形式,然后将其存储到数据库中。

    String timestampString = request.getParameter("timestamp");
String timezoneID = request.getParameter("timezone");
System.out.println(TAG + " newTestIdString: " + newTestIdString
+ "\n" + TAG + " timestampString: " + timestampString);

Integer newTestId = Integer.parseInt(newTestIdString);

try{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone(timezoneID));
Date parsedDate = dateFormat.parse(timestampString);
System.out.println(TAG + "timezone-JP: " + dateFormat.format(parsedDate));

dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(TAG + "timezone-UTC: " + dateFormat.format(parsedDate));

dateFormat.format(parsedDate);
timestamp = new java.sql.Timestamp(parsedDate.getTime());
System.out.println(TAG + "timestamp: " + timestamp.toString());
}catch(Exception e){
e.printStackTrace();
}

但是,如果用户在 7:29 发送包含时间戳字符串的数据,我会得到以下输出:

INFO   | jvm 1    | 2015/09/17 18:29:59 | ProcessTest  newTestIdString: 1109
INFO | jvm 1 | 2015/09/17 18:29:59 | ProcessTest timestampString: 2015-09-18 07:29:58
INFO | jvm 1 | 2015/09/17 18:29:59 | ProcessTest timezone-JP: 2015-09-18 07:29:58
INFO | jvm 1 | 2015/09/17 18:29:59 | ProcessTest timezone-UTC: 2015-09-17 10:29:58
INFO | jvm 1 | 2015/09/17 18:29:59 | ProcessTest timestamp: 2015-09-17 18:29:58.0

为什么时间戳会改变最后一行的日期?

如何使用 UTC 日期创建时间戳?

最佳答案

TimeStampDate 没有任何与之关联的时区...

当您执行timestamp.toString()时,它会给出JVM默认时区中日期的字符串表示形式。

如果您不想在特定时区使用它,只需使用 format() 即可,就像处理其他 Date 对象一样。

System.out.println(TAG + "timestamp: " + dateFormat.format(timestamp));

PS:java.sql.Timestamp扩展了java.util.Date

关于java - 时间戳更改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643380/

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