Tre*_*ree 2 java date-format jodatime
使用下面的Joda Time的模式语法,这个输入字符串:
Sunday, January 09, 2011 6:15:00 PM
Run Code Online (Sandbox Code Playgroud)
变成这个日期时间:
2011-01-09T06:15:00.000Z
Run Code Online (Sandbox Code Playgroud)
码:
String start = "Sunday, January 09, 2011 6:15:00 PM";
DateTimeFormatter parser1 =
DateTimeFormat.forPattern("EEEE, MMMM dd, yyyy H:mm:ss aa");
DateTime startTime = parser1.parseDateTime(start);
Run Code Online (Sandbox Code Playgroud)
这种格式模式不正确吗?如果不是,有什么T
和Z
日期时间输出里面在做什么?
2011-01-09T06:15:00.000Z
Run Code Online (Sandbox Code Playgroud)
che*_*koo 14
T:表示字符串的"时间部分"的开始.区域:'Z'输出偏移量.我想在这种情况下是GMT.资料来源:http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html
我总是使用这种格式字符串: yyyy-MM-dd'T'HH:mm:ss.SSSZ
并且,是的,如果它们存在于您的字符串中,它们不是不正确的.
Jon*_*eet 12
您只显示了解析代码 - 而不是您如何将DateTime
值转换回a String
.
我强烈怀疑你只是toString()
使用默认的DateTime
ISO8601格式进行呼叫.
不要忘记,DateTime
值表示特定时区和日历系统中的即时时间 - 它没有格式模式的概念."T"和"Z"不在DateTime
值中 - 它们只是值的默认表示.就像你将int
一个字符串转换为字符串一样 - 它碰巧使用十进制,但数字本身只是一个数字.
如果要以DateTime
特定方式格式化,则应使用
String text = formatter.print(startTime);
Run Code Online (Sandbox Code Playgroud)