新的Date()结果并不总是正确的

时间:2012-02-17 04:30:22

标签: java android

我想知道是否有任何陷阱或类似的东西与普通的java new Date()

我在整个应用程序中使用它来获取当前时间戳。

但是,我看到(偶尔)结果不合时宜。就像那些来自未来的日期。任何想法为什么会发生这样的事情?我也使用以下函数将这些数据转换为字符串..

enter image description here

    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;
            }
        }

1 个答案:

答案 0 :(得分:3)

SimpleDateFormat不是线程安全的,因此请确保不要使用来自不同线程的相同实例,否则数据解析可能会变得无效。您可以使用ThreadLocal为每个线程创建SimpleDateFormat实例。