我收到的时间以毫秒为单位,我希望将其转换为日期和时间格式,并将该值存储在 sqlserver 的datetime列中。
以下是正在运行并将毫秒转换为日期和时间的代码,但无法在数据库列中设置日期和时间值。
String datetime = 1488288835716
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(Long.parseLong(datetime));
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
String datestring= formatter.format(calendar.getTime());
UpdateStatement.setString(1,datestring)
答案 0 :(得分:0)
您不需要将给定的毫秒转换为任何文本表示形式。事实上,大多数数据库都会以毫秒为单位存储时间/日期时间值。
相反,请使用java.sql.Timestamp
,如下所示:
long timeInMillis = 1488288835716;
Timestamp time = new Timestamp(timeInMillis);
updateStatement.setTimestamp(1, time);
答案 1 :(得分:0)
你能尝试一下,克服现场,文化等问题吗?
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
我不熟悉Java,但这可能是SQL Server的一个问题,因此我总是在写入数据库之前将日期字符串放在这种格式中。