Android时间在iso 8601

时间:2012-11-22 14:48:40

标签: android timezone jodatime iso8601

使用android和joda time lib - 我试图转换用户的时区,以便稍后将其格式化为:2012-11-12T21:45:00 + 02:00例如。

DateTimeZone zone = DateTimeZone.forID( TimeZone.getDefault().getID());

以上代码失败 - 任何人都知道如何将“Europe / London”(Timezone.getID)转换为偏移量,以便将其置于ISO 8601格式中?

2 个答案:

答案 0 :(得分:10)

如果我正确理解了您的目标,您可以直接使用SimpleDateFormat课程。

示例代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.UK);
String formattedDate = sdf.format(new Date());

您可以在SimpleDateFormat

中查看文件管理

问候。

答案 1 :(得分:3)

API级别26增加了对Java中许多时间和日期类的支持。所以现在也可以应用此解决方案: https://stackoverflow.com/a/25618897/3316651

// works with Instant
Instant instant = Instant.now();
System.out.println(instant.format(DateTimeFormatter.ISO_INSTANT));

// works with ZonedDateTime 
ZonedDateTime zdt = ZonedDateTime.now();
System.out.println(zdt.format(DateTimeFormatter.ISO_INSTANT));

// example output
2014-09-02T08:05:23.653Z

JodaStephen的信用。

Android doc: https://developer.android.com/reference/java/time/format/DateTimeFormatter.html#ISO_INSTANT