Java中的日期转换让我这个先学C#的人感觉莫名其妙,在C# 中 Date对象的静态对象就有now,而now中又包含了当前现在的时间日期信息。
在Java中就没有让人感觉到那么好了,虽然 new Date() 在构造的时候被实例化为了当前时间,但是如果你就将这个信息插入数据库的话,绝对不是你想要的那个时间信息。
解决办法:
首先将 当前事件转化成对应的时间字符串:
Date dNow = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dString = formatter.format(dNow);
然后再将上边的时间字符串转化为Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
dNow =(Date)sdf.parse(dString);
} catch (ParseException e) {
e.printStackTrace();
}
最后还是要吐槽一下,Java的日期实在是不太好用。在开始写一个输出日期字符串的时候,习惯的去找 toLocalString() 方法,结果却找到一个过期的方法,个人对这个行为不太理解,因为感觉这个让简单的事情变复杂了。