如何从带时区的日期时间字符串中拆分日期?

时间:2019-05-24 09:19:51

标签: android date-format datetime-parsing

我有一个带有时区的日期时间字符串,例如“ 2019-05-21 04:49:39.000Z”。我如何不使用拆分方法从此字符串拆分日期。我必须使用时区格式化程序。任何人都可以帮助我。

2 个答案:

答案 0 :(得分:2)

公共静态字符串getDateTime(String created_on){

    SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    SimpleDateFormat outFormat = new SimpleDateFormat("dd MMM yyyy hh:mm aa");

    try {

        inFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        Date value = inFormat.parse(created_on);

        outFormat.setTimeZone(TimeZone.getDefault());
        created_on = outFormat.format(value);

    } catch (ParseException e) {
        e.printStackTrace();
    }

    return created_on;
}

使用此功能。它将帮助您获取日期和时间

答案 1 :(得分:1)

使用一些库将String解析为OffsetDateTime, 从parsedDateTime变量获取时间的任何部分后(小时,分钟...) 在Kotlin中(最低API 26):

 val parsedDateTime = OffsetDateTime
.parse("2019-05-21 04:49:39.000Z", DateTimeFormatter.ISO_DATE_TIME)
 val time = "${parsedDateTime.hour} : ${parsedDateTime.minute}"

查看此链接以获取更多示例:examples

https://grokonez.com/kotlin/kotlin-convert-string-datetime

更新:
作为Ole V.V.注释中提到的-如果您尚未达到API级别26,则可以将ThreeTenABP 添加到您的Android项目中,然后从那里导入OffsetDateTime(并且相同的代码适用于较低的API)。