使用 android 和 joda time lib - 我正在尝试转换用户的时区,以便稍后将其格式化为:例如 2012-11-12T21:45:00+02:00。
DateTimeZone zone = DateTimeZone.forID( TimeZone.getDefault().getID());
上面的代码失败了 - 任何人都知道如何获取“Europe/London”(Timezone.getID)并将其转换为偏移量,以便我可以将其放入 ISO 8601 格式?
如果我正确理解了您的目标,您可以直接使用该SimpleDateFormat
课程。
示例代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.UK);
String formattedDate = sdf.format(new Date());
您可以在SimpleDateFormat中查看文档
问候。
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
归功于乔达斯蒂芬。
安卓文档: https ://developer.android.com/reference/java/time/format/DateTimeFormatter.html#ISO_INSTANT