我将我的应用程序中的当前时间保存为MYSQL数据库作为时间戳,作为备份,我将日期保存到文本文件中。但是,时间格式的格式不一样,我希望它们是相同的,因为我需要比较它们。
数据库正在使用日期时间类型,时间戳格式为" 2014-07-23 09:50:14"
在文本文件中,时间戳格式为" 2014-07-23 09:51:25.877"
我正在使用预备文件保存到数据库。
preparedStatement.setTimestamp(2, new Timestamp(new Date().getTime()));
我使用BufferedWriter保存到文本文件。
bufferedWriter.write(new Timestamp(new Date().getTime())
如何才能使格式相同,以便比较时间戳?
顺便说一句,我不需要毫秒精度,我只想要格式相同。
答案 0 :(得分:1)
这是不同的,因为您创建两个时间戳相隔几秒钟。你应该创建一个时间戳并写入两个地方。
未测试:
Timestamp stamp = new Timestamp(new Date().getTime());
preparedStatement.setTimestamp(2, stamp);
bufferedWriter.write(stamp)
要在MySQL中存储小数秒,请参阅11.3.7 Fractional Seconds in Time Values:
MySQL 5.7对TIME,DATETIME和TIMESTAMP值的小数秒支持,精度高达微秒(6位):
要定义包含小数秒部分的列,请使用语法type_name(fsp),其中type_name是TIME,DATETIME或TIMESTAMP,fsp是小数秒精度。例如:
CREATE TABLE t1 (t TIME(3), dt DATETIME(6));
fsp值(如果给定)必须在0到6的范围内。值0表示没有小数部分。如果省略,则默认精度为0.(这与标准SQL默认值6不同,以便与以前的MySQL版本兼容。)
答案 1 :(得分:0)
您可以使用以下内容将日期格式化为数据库格式:
SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss");
dt1.format(date);
那应该解决你的问题