【问题标题】:Why Java SimpleDateFormat().parse() is printing weird formate?为什么 Java SimpleDateFormat().parse() 打印奇怪的甲酸盐?
【发布时间】:2010-03-21 09:35:47
【问题描述】:

我的输入是字符串,格式如下:

3/4/2010 10:40:01 AM
3/4/2010 10:38:31 AM

我的代码是:

DateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss aa");
            try
            {
                Date today = dateFormat.parse(time);
                System.out.println("Date Time : " + today);

            }
            catch (ParseException e)
            {
                e.printStackTrace();
            }

输出是:

Sun Jan 03 10:38:31 AST 2010
Sun Jan 03 10:40:01 AST 2010

我不确定这一天(太阳)是从哪里来的?或(AST)?为什么日期是错误的?我只是想保持原始 String 日期的相同格式,并将其制成 Date 对象。

我使用的是 Netbeans 6.8 Mac 版本。

【问题讨论】:

    标签: java string datetime simpledateformat


    【解决方案1】:

    应该是毫米,而不是毫米。小写的 mm 代表分钟,而不是月。

    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aa");
    

    【讨论】:

      【解决方案2】:

      MM,而不是 mm 几个月。您使用了两次mm - 从逻辑上讲,它是相同的东西 - 分钟。

      【讨论】:

        【解决方案3】:

        如果要以原始格式打印日期,请使用 format 方法:

        System.out.println("Date Time : "+ dateFormat.format(today)); “奇怪”的格式来自 Date 的 toString 实现,javadoc 说:

        将此 Date 对象转换为以下形式的字符串:

        dow mon dd hh:mm:ss zzz yyyy

        “我只是想保持与原始字符串日期相同的格式,并将其变成一个 Date 对象。”

        Date 对象旨在表示特定的时间瞬间,您不能将原始字符串的格式保留在其中,这就是我们有 DateFormat 类的原因。

        【讨论】:

        • @MAK,日期对象不包含“格式”,如果您正在寻找格式化输出,则不应打印它
        【解决方案4】:

        答案很简单。您显示了今天的 Date.toString() 值,而不是预期的 dateFormat 版本。你需要的是:

        System.out.println("Date Time : " + dateFormat.format(today) );
        

        【讨论】:

        • 但我需要将字符串作为日期对象!
        • 如果您需要,可以将 Date 对象作为参数传递给其他方法。要以您选择的格式显示日期,您需要将其用作 dateFormat 实例的 format 方法的参数。
        【解决方案5】:

        使用 System.out.println() 打印日期会导致在 Date 对象上调用 toString() 方法。

        toString() 中使用的格式字符串是导致星期几和时区出现在输出中的原因。

        这与Duffy指出的解析错误不同。

        【讨论】:

        • 有没有办法防止这种情况发生?
        猜你喜欢
        • 1970-01-01
        • 2013-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-10
        • 1970-01-01
        相关资源
        最近更新 更多