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

Android 如何从带时区的日期时间字符串中拆分日期?,android,date-format,datetime-parsing,Android,Date Format,Datetime Parsing,我有一个带有时区的日期时间字符串,如“2019-05-21 04:49:39.000Z”。如何在没有拆分方法的情况下拆分此字符串中的日期。我必须使用时区格式化程序。任何人都可以帮助我。公共静态字符串getDateTime(创建的字符串){ 使用此函数。它将帮助您获取日期和时间使用一些库来解析字符串,例如OffsetDateTime, 从parsedDateTime变量获取任意部分时间(小时、分钟…) 在科特林(最低API 26): 有关更多示例,请查看此链接: 更新: 正如评论中提到的Ole

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

公共静态字符串getDateTime(创建的字符串){


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

使用一些库来解析字符串,例如OffsetDateTime, 从parsedDateTime变量获取任意部分时间(小时、分钟…) 在科特林(最低API 26):

有关更多示例,请查看此链接:

更新:

正如评论中提到的Ole V.V.一样,如果您还没有达到API级别26,您可以将其添加到Android项目中,并从此处导入OffsetDateTime(并且相同的代码适用于较低的API).

使用SimpleDateFormat您可以将日期字符串解析为日期对象。从那里,您可以使用SimpleDateFormat@Jainil Patel以任何格式拆分日期和时间。任何示例请?可能重复。有很多很多类似的问题。请(始终)在再次发布同样的问题之前,搜索并浏览你得到的结果。有很多方法。我会添加到我的Android项目中(如果min API级别低于26),构建一个
DateTimeFormatter
,可能使用一个
DateTimeFormatterBuilder
和两个预定义的格式化程序,解析成一个
OffsetDateTIme
并将其转换为
LocalDate
,以仅获取日期。但我在字符串中没有“T”分隔符。只删除T,然后检查如果您还没有达到API级别26,则可以删除它可以添加到您的Android项目中,并使用子包从
org.threeten.bp
导入,然后相同的代码可以工作。
    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;
}
 val parsedDateTime = OffsetDateTime
.parse("2019-05-21 04:49:39.000Z", DateTimeFormatter.ISO_DATE_TIME)
 val time = "${parsedDateTime.hour} : ${parsedDateTime.minute}"