时间戳的日期格式?

时间:2016-10-27 08:10:28

标签: java

我有以下日期字符串:

  

1477547160000 + 0800

时间戳是否有日期格式?

AFAIK,没有像here

那样解析时间戳的日期格式

1 个答案:

答案 0 :(得分:0)

假设+之前的数字是纪元毫秒,而+之后的数字是时区偏移,您可以试试这个:

String input = "1477547160000+0800";
long epoch = Long.parseLong(input.substring(0, input.length() - 5));
int offset = Integer.parseInt(input.substring(input.length() - 5));
int offsetHour = offset / 100;
int offsetMin = offset % 100;

OffsetDateTime t = Instant
    .ofEpochMilli(epoch)
    .atOffset(ZoneOffset.ofHoursMinutes(offsetHour, offsetMin));

现在您拥有OffsetDateTime个实例,并且可以将其转换为您想要的任何格式的String。默认值为:

t.toString() => "2016-10-27T13:46+08:00"

如果您需要特定格式,可以使用DateTimeFormatter

t.format(new DateTimeFormatter(your_format_here));