Groovy:如何初始化和比较来自不同时区的日期/时间值?

Chr*_*ris 4 groovy datetime

我需要标准化和比较不同时区的日期/时间字段.例如,你如何找到以下两次之间的时差?...

"18-05-2012 09:29:41 +0800"
"18-05-2012 09:29:21 +0900"
Run Code Online (Sandbox Code Playgroud)

使用日期/时间初始化标准变量的最佳方法是什么?输出需要在时区(例如+0100)中显示差异和标准化数据,该时区与传入值不同并且与本地环境不同.

预期产出:

18-05-2012 02:29:41 +0100 
18-05-2012 01:29:21 +0100
Difference: 01:00:20
Run Code Online (Sandbox Code Playgroud)

rdm*_*ler 6

import java.text.SimpleDateFormat

def dates = ["18-05-2012 09:29:41 +0800",
 "18-05-2012 09:29:21 +0900"].collect{
   new SimpleDateFormat("dd-MM-yyyy HH:mm:ss Z").parse(it)
}
def dayDiffFormatter = new SimpleDateFormat("HH:mm:ss")
dayDiffFormatter.setTimeZone(TimeZone.getTimeZone("UTC"))
println dates[0]
println dates[1]
println "Difference "+dayDiffFormatter.format(new Date(dates[0].time-dates[1].time))
Run Code Online (Sandbox Code Playgroud)

哇.看起来不可读,是吗?