【发布时间】:2017-05-26 16:30:12
【问题描述】:
我正在尝试以特定格式将日期插入到 SQL 表中。我成功地将日期插入datetime 类型的列中,但格式不正确。
我有以下几点:
TimeZone tz = TimeZone.getTimeZone("UTC");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
df.setTimeZone(tz);
String timeString = df.format(System.currentTimeMillis());
Date date = df.parse(timeString);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
我可以看到 timeString 被正确设置为一个字符串,例如:“2017-01-11 18:19:06.662”
但日期随后被设置为:“Wed Jan 11 13:19:06 EST 2017”(缺少毫秒)
并且sqlDate 设置为“2017-01-11”
当我查看表格以查看值是什么时,我看到对于我正在设置的字段,我看到 datetime 被设置为“2017-01-11 00:00:00.000”。
现在这丢失了所有时间信息,我确定这与 sqlDate 被设置为没有时间的值有关,但我不确定为什么 sql 日期没有时间值。我查看了一些尝试处理相同问题的旧帖子,但没有找到解决方案 here 或 here。
感谢您就为什么会发生这种情况提出建议。
【问题讨论】:
-
您缺少格式中的时区设置。尝试将其包含在掩码中并以这种方式设置
-
列的表定义是什么?
标签: java sql-server date datetime