Groovy-无法将日期字符串“ 2018-07-18T01:40:05-0400”转换为所需格式

时间:2018-07-18 14:30:31

标签: groovy

以下是我来自休假请求的响应代码

"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表示时区

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

2 个答案:

答案 0 :(得分:2)

如果您使用的是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'))

答案 1 :(得分:1)

如果我正确理解问题,则应该准备输入时间戳并使用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
*/