安卓 格式日期与时区

我需要将日期格式化为特定字符串。

我使用类来格式化日期,使用模式“yyyy-MM-dd'T'HH:mm:ssZ”,它将当前日期返回为
“”,但我需要作为
“”。SimpleDateFormat2013-01-04T15:51:45+05302013-01-04T15:51:45+05:30

以下是使用的编码,

Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH);      
Log.e(C.TAG, "formatted string: "+sdf.format(c.getTime()));

输出:格式化字符串:2013-01-04T15:51:45+0530

我需要的格式只是在gmt时间之间添加冒号。2013-01-04T15:51:45+05:30

因为我正在Google日历上插入事件,所以它只接受我提到的所需格式。


答案 1

您还可以在模式中使用“ZZZZZ”而不是“Z”(根据文档)。类似的东西

    Calendar c = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ", Locale.ENGLISH);      
    Log.e(C.TAG, "formatted string: "+sdf.format(c.getTime()));

答案 2

你可以改用Joda Time。它有一个格式属性,可以做你想要的。DateTimeFormatZZ

链接

大优势:与,线程安全。用法:SimpleDateFormatDateTimeFormatter

DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZZ")
    .withLocale(Locale.ENGLISH);

推荐