使用android和joda time lib - 我试图转换用户的时区,以便稍后将其格式化为:2012-11-12T21:45:00 + 02:00例如。
DateTimeZone zone = DateTimeZone.forID( TimeZone.getDefault().getID());
以上代码失败 - 任何人都知道如何将“Europe / London”(Timezone.getID)转换为偏移量,以便将其置于ISO 8601格式中?
答案 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