我在将json文件中的日期转换为时间戳时遇到问题。当小时= 12时,返回的时间戳不正确。
Java版本1.8.0_171
使用下面的代码片段,我希望输出为
2017-07-19 07:43:42.0
2017-07-18 08:43:42.0
2017-07-19 09:43:42.0
相反,我得到
2017-07-19 07:43:42.0
2017-07-18 20:43:42.0
2017-07-19 09:43:42.0
我在2台机器上尝试过,并让一位同事运行它,结果相同。我可能正在盯着它
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Locale;
import org.apache.commons.lang3.StringUtils;
public class TimestampTest {
public static void main(String[] args) {
String input = "2017-07-19T11:43:42.000+0000";
System.out.println(stringToTimestamp(input));
input = "2017-07-19T12:43:42.000+0000";
System.out.println(stringToTimestamp(input));
input = "2017-07-19T13:43:42.000+0000";
System.out.println(stringToTimestamp(input));
}
private static Timestamp stringToTimestamp(String input) {
try {
if(StringUtils.isBlank(input)) {
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ",
Locale.getDefault());
java.util.Date parsedDate = dateFormat.parse(input);
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
return timestamp;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
除了您不应该使用Date
或不再使用之外SimpleDateFormat
,您的错误还因为您使用hh
而不是HH
h->小时(上午/下午)(1-12)
H->每小时(0-23)
考虑在您的情况下使用LocalDateTime。
我在将json文件中的日期转换为时间戳时遇到问题。当小时=12时,返回的时间戳不正确。 Java版本1.8.0\u 171 使用下面的代码片段,我希望输出是 2017-07-19 07:43:42.0 2017-07-18 08:43:42.0 2017-07-19 09:43:42.0 相反,我得到了 2017-07-19 07:43:42.0 2017-07-18 20:43:42.0 201
问题内容: 我想要以毫秒为单位的当前时间,然后以12小时格式存储它,但是通过这段代码,我得到了24小时格式时间。 有人可以建议修改以获得期望的结果吗? 问题答案: 更改到作为 请注意-将为您提供 分钟 而不是 月份 。
我有以下应该返回时间戳的函数。当使用以下斜杠以字符串格式输入日期时,此代码有效:“2019/3/4”,但在使用 怎么回事?
问题内容: 我对以下行为感到非常困惑。我从一个方法返回2日期作为字符串: 我添加了一个屏幕截图,显示返回的日期分别为“ 2018-06-20 00:00:00”和“ 2018-06-24 00:00:00”,并保留了调试跟踪以显示 值。 我只是想将日期转换为20180620格式。 方法: …接受字符串值 我不明白“ 2017年12月6日星期三00:00:00 GMT”的日期是哪里 ?这是最终 作为
在我的MySQL数据库中,我有一个有三列的表,如下所示 notification_time是时间的数据类型。 在我的Spring-boot应用程序中,为表建模