Groovy DateTime格式意外输出

时间:2018-11-12 14:15:13

标签: datetime groovy

以下代码未返回预期的输出。怎么了?

def a = new Test(new Date());

println a.getLogFormatDate()

class Test
{
    String _dateTime;
    static final String _logDateFormat = "E MMM dd HH:mm:ss zzz yyyy";
    static final String _timeZoneUTC = "UTC";

    Test(Date dateTime)
    {
        _dateTime = dateTime;
    }

    public String getLogFormatDate()
     {
        return _dateTime.format(_logDateFormat, TimeZone.getTimeZone(_timeZoneUTC));
     }
}​

预期输出:

  

2018年11月12日星期一14:10:46 UTC

实际输出:

  

E MMM dd HH:mm:ss zzz yyyy

1 个答案:

答案 0 :(得分:1)

您已定义类型为_dateTime的{​​{1}}类字段,因此您的String会调用

getLogFormatDate

您期待的时间

String.format("E MMM dd HH:mm:ss zzz yyyy", TimeZone.getTimeZone("UTC"))

被呼叫。

Date.format("E MMM dd HH:mm:ss zzz yyyy", TimeZone.getTimeZone("UTC")) 字段定义为_dateTime,它将按预期工作。