我想知道是否有任何陷阱或类似的东西与普通的java new Date()
我在整个应用程序中使用它来获取当前时间戳。
但是,我看到(偶尔)结果不合时宜。就像那些来自未来的日期。任何想法为什么会发生这样的事情?我也使用以下函数将这些数据转换为字符串..
private final static SimpleDateFormat databaseDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
static
{
databaseDateFormat.setTimeZone(TimeZone.getTimeZone("gmt"));
}
public static String getDateConvertedToUTCDBString(Date date)
{
return databaseDateFormat.format(date);
}
public static Date getDateConvertedFromDBString(String date)
{
try
{
return localDatabaseDateFormat.parse(date);
}
catch(java.text.ParseException e)
{
return null;
}
}
答案 0 :(得分:3)
SimpleDateFormat不是线程安全的,因此请确保不要使用来自不同线程的相同实例,否则数据解析可能会变得无效。您可以使用ThreadLocal为每个线程创建SimpleDateFormat实例。