我正在将Date转换为yyyy-MM-dd HH:mm:ss格式的字符串格式,以保存在sqlite数据库中 下面是声明为简单日期格式的对象
public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
有时您会在日期前加上一对零,如下图所示
示例错误日期返回如下
2018-08-25 02:32:0000
2018-08-25 02:32:0049
2018-0008-25 02:32:50
2018-08-24 0023:32:50
我创建了自定义功能来更正这个错误的日期。但是我想知道这个问题的确切原因。
下面是代码
public static String getCurrentDateTime() {
Date d = new Date();
String datetime = sdf.format(d);
if (datetime.length() > 19) {
datetime = correctDate(datetime);
}
return datetime;
}
答案 0 :(得分:1)
我敢肯定,如果您不使用static
的{{1}}实例,就不会有问题:
SimpleDateFormat
请参阅以下链接:
Why is Java's SimpleDateFormat not thread-safe?
"Java DateFormat is not threadsafe" what does this leads to?
答案 1 :(得分:0)
SimpleDateFormat不是线程安全的,这就是为什么您应该检查调用代码中是否没有问题。