2

所以,基本上我试图在字符串中实现以下格式:

2012-06-17T08:00:00.000+01:00

我以字符串格式获取原始日期,然后将其解析为不同的格式。

当我使用格式为 (yyyy-MM-dd'T'HH:mm:ss.sssZ) 的 SimpleDateFormat 时,我得到以下输出:

2013-06-17T07:00:00.000+0530

这里 +0530 应该是 +05:30

当我将上述日期设置为日历类型,然后将其转换为字符串时,我得到以下格式:

2013-06-17T07:00:00+05:30

在这里,我在几秒钟后没有得到 .000。

任何想法如何在不使用 JodaTime 的情况下实现这一点。仅需要日期、字符串和日历类型的操作

4

3 回答 3

2

首先:像这样在格式化程序中获得额外的使用 XXX 并使用大写S来获得毫秒

   SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX")

更新:以上不适用于 1.6

哟可以尝试以下但是

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ") 
{
    public StringBuffer format(Date date, StringBuffer toAppendTo, java.text.FieldPosition pos) 
    {
        StringBuffer toFix = super.format(date, toAppendTo, pos);
        return toFix.insert(toFix.length()-2, ':');
    };

有关更多信息,请参阅此帖子

于 2013-06-26T12:22:36.673 回答
0

SimpleDateFormat 模式

"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
于 2013-06-26T12:25:27.660 回答
0
于 2018-03-28T22:06:00.907 回答