Datetime Groovy日期时间格式意外输出

Datetime Groovy日期时间格式意外输出,datetime,groovy,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 dat

下面的代码没有返回预期的输出。怎么了

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

您已经用String类型定义了_dateTime类字段,因此您的getLogFormatDate调用

当你期待的时候

Date.format("E MMM dd HH:mm:ss zzz yyyy", TimeZone.getTimeZone("UTC"))
被称为

将_dateTime字段定义为Date,它将按预期工作

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