Java 将日期字符串转换为UTC

Java 将日期字符串转换为UTC,java,spring,spring-boot,cassandra,Java,Spring,Spring Boot,Cassandra,我想将存储为字符串的日期转换为UTC String date=“Fri Aug 19 22:30:00 IST 2019”(我从卡桑德拉取回)。 如何将其转换为这种格式“2019-08-19T17:00:00+00:00”通常,下面的代码用于转换并打印2019-04-01T11:05:30Z[GMT] val formatter = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss z") val dateTime = Zon

我想将存储为
字符串的日期转换为
UTC

String date=“Fri Aug 19 22:30:00 IST 2019”
(我从卡桑德拉取回)。
如何将其转换为这种格式<代码>“2019-08-19T17:00:00+00:00”

通常,下面的代码用于转换并打印
2019-04-01T11:05:30Z[GMT]

    val formatter = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss z")
    val dateTime = ZonedDateTime.parse("Mon, 1 Apr 2019 11:05:30 GMT", formatter)
    println(dateTime)
    val str = "Mon Aug 19 22:30:00 2019"
    val formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss yyyy")
    val dateTime = LocalDateTime.parse(str, formatter)
    val zdtAtAsia = dateTime.atZone(ZoneId.of("Asia/Kolkata"))
    val zdtAtGmt = zdtAtAsia.withZoneSameInstant(ZoneId.of("GMT"))
如果预先定义了区域
IST
,您还可以在字符串中执行一些操作并删除该区域,然后执行以下操作,这也将打印
2019-08-19T17:00Z[GMT]

    val formatter = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss z")
    val dateTime = ZonedDateTime.parse("Mon, 1 Apr 2019 11:05:30 GMT", formatter)
    println(dateTime)
    val str = "Mon Aug 19 22:30:00 2019"
    val formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss yyyy")
    val dateTime = LocalDateTime.parse(str, formatter)
    val zdtAtAsia = dateTime.atZone(ZoneId.of("Asia/Kolkata"))
    val zdtAtGmt = zdtAtAsia.withZoneSameInstant(ZoneId.of("GMT"))

(示例在kotlin中,但它使用与java相同的库)

使用
java.time
java.time.format
包。解析日期,然后重新格式化它。请注意,像
IST
这样的速记形式可能会给您带来错误的时区,因为
IST
可以是印度标准时间、以色列标准时间等等。