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