Groovy-无法转换日期字符串;2018-07-18T01:40:05-0400;格式化所需的格式

Groovy-无法转换日期字符串;2018-07-18T01:40:05-0400;格式化所需的格式,groovy,Groovy,下面是我对rest请求的响应代码 "createdDate" : "2012-02-27T18:10:28-0500", "isDeleted" : "indeterminate", "modifiedDate" : "2018-07-18T01:40:05-0400" 我正在尝试将格式为2018-07-18T01:40:05-0400的时间戳转换为MM/dd/YYYY hh:MM -0400表示时区 谁能告诉我如何将这种类型的时间戳转换为所需的格式吗?如果我正确理解了这个问题,您应该准备输入

下面是我对rest请求的响应代码

"createdDate" : "2012-02-27T18:10:28-0500",
"isDeleted" : "indeterminate",
"modifiedDate" : "2018-07-18T01:40:05-0400"
我正在尝试将格式为
2018-07-18T01:40:05-0400
的时间戳转换为
MM/dd/YYYY hh:MM

-0400
表示时区


谁能告诉我如何将这种类型的时间戳转换为所需的格式吗?

如果我正确理解了这个问题,您应该准备输入时间戳并使用
Date.parse

def input = '2018-07-18T01:40:05-0400'
pdata = input.replace("T", " ").substring(0, input.replace("T", " ").length() - 5)
def out = Date.parse("yyyy-MM-dd hh:mm:ss", pdata).format("MM/dd/yyyy hh:mm")

/* Output
println "Input date: " + input
println "Parse date: " + out

Input date: 2018-07-18T01:40:05-0400
Parse date: 07/18/2018 01:40
*/

如果您使用的是Java 8和Groovy 2.5

java.time.OffsetDateTime.parse('2018-07-18T01:40:05-0400', "yyyy-MM-dd'T'HH:mm:ssXX")
                        .format('MM/dd/yyyy hh:mm')
在Java 8和Groovy的早期版本上

import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter

OffsetDateTime.parse('2018-07-18T01:40:05-0400', DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXX"))
              .format(DateTimeFormatter.ofPattern('MM/dd/yyyy hh:mm'))

非常感谢你。我无法转换为所需格式