从本地日期时间字符串中获取时间

时间:2018-02-28 15:59:19

标签: java android datetime

我有一个看起来像这样的字符串:

String localTimeString = "2018-03-01T17:20:00.000+01:00";

以“HH:mm”格式获取此字符串中仅包含时间的正确方法是什么?

(Min sdk设为19)

所有帮助表示赞赏!

3 个答案:

答案 0 :(得分:2)

你可以从LocalDateTime中获取小时和分钟并连接它们。

LocalDateTime now = LocalDateTime.now();
String formatTime = now.getHour() + ":" + now.getMinute();

答案 1 :(得分:1)

您的字符串采用标准ISO格式,因此您可以使用以下方法轻松解析:

OffsetDateTime.parse(localTimeString)

现在你只需要时间组件,你需要一个字符串表示:

String time = OffsetDateTime.parse(localTimeString).toLocalTime().toString();

输出" 17:20"。请注意,这是有效的,因为原始字符串中没有秒,否则它们也会出现在输出中。

答案 2 :(得分:1)

将您的字符串解析为LocalDateTime

String localTimeString = "2018-03-01T17:20:00.000+01:00";
LocalDateTime ldt = LocalDateTime.parse(localTimeString, DateTimeFormatter.ISO_DATE_TIME);

然后将其格式化为输出小时和分钟

System.out.println(ldt.format(DateTimeFormatter.ofPattern("HH:mm")));