java - 简单日期格式间歇性地返回错误日期

标签 java android simpledateformat

<分区>

我正在将 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

2018-08-0024 23:32:50 enter image description here

我已经创建了自定义函数来更正这个错误的日期。但我想知道这个问题的确切原因。

下面是代码

public static String getCurrentDateTime() {
    Date d = new Date();

    String datetime = sdf.format(d);
    if (datetime.length() > 19) {
        datetime = correctDate(datetime);
    }
    return datetime;
}

最佳答案

我敢肯定,如果您不使用 SimpleDateFormatstatic 实例,您将不会遇到任何问题:

public static String getCurrentDateTime() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date d = new Date();
    String datetime = sdf.format(d);
    return datetime;
}

查看这些链接:
Why is Java's SimpleDateFormat not thread-safe?
"Java DateFormat is not threadsafe" what does this leads to?

关于java - 简单日期格式间歇性地返回错误日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59112240/

相关文章:

java - 在 Java 中绘制屏幕

java - 如何在 IE 11 中使用 Selenium webdriver 单击安全警告窗口?

java - 从java语法antlr创建解析器时出错

android - TabLayoutMediator 不保留 TabItem 属性

java - 处理后获得的日期不正确

java - Android获取当前东部标准时间

java - 不使用 root 进行映射的 Spring Data REST 示例

android - 太新 android google play 版本

java - Android for 循环计数不正确

java - SimpleDateFormat "Unparseable date"异常