我尝试使用SimpleDateFormat来完成这项工作, 但是我不知道如何处理字符串中的T" 2008-08-01T15:47:00.557",任何人都可以帮我这个吗?
答案 0 :(得分:2)
您需要使用格式“yyyy-MM-dd'T'hh:mm:ss.SSS”。
在附加说明中,如果您尝试处理xml日期,请查看以下问题:Convert Java Date into XML Date Format (and vice versa)
答案 1 :(得分:1)
我不是很确定。但如果我记得很好,你必须用你的格式用单引号括起T.
String yourFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS";
答案 2 :(得分:0)
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss.SSS”);
几乎这个确切的例子在API中给出,检查出来:-) http://download.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
答案 3 :(得分:0)
因为你的例子是24H格式而不是AM / PM一个
你应该使用HH(大写)代替hh
像这样String EXT_JS_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
答案 4 :(得分:0)
您的字符串格式符合ISO 8601标准。
Java 8及更高版本包含java.time框架,以取代问题和其他答案中使用的旧日期时间类。
在解析/生成字符串时,新类默认使用ISO 8601标准。所以无需指定编码格式模式。
您的输入字符串缺少任何时区或offset-from-UTC。因此,您必须指定此字符串具有含义的时区。如果未指定,则解析会自动应用JVM的当前默认时区。不好,因为默认值可能不是用于字符串的区域。此外,JVM的默认值可以随时更改,即使在运行时也是如此。
如果您的字符串是作为时区的UTC,只需附加一个<div class="footer">
<div class="container">
<div class="row">
<ul class="col-md-6">
<li><h4>Links</h4></li>
<li><a href="index.html">Home</a></li>
<li><a href="courses.html">Courses</a></li>
<li><a href="sign-up.html">Sign Up</a></li>
<li><a href="log-in.html">Log In</a></li>
<li><a href="help.html">Help</a></li>
</ul>
<div class="col-md-6">
</div>
</div>
<div class="row">
<ul class="col-md-6">
<li><h4>Social Media</h4></li>
<li><a href="#">Facebook</a></li>
<li><a href="#">Twitter</a></li>
<li><a href="#">Youtube</a></li>
<li><a href="#">Instagram</a></li>
</ul>
</div>
</div>
</div>
(“Zulu”的缩写,表示UTC)。然后解析为Z
,在UTC时间轴上的一个时刻。
Instant
转储到控制台。
String input = "2008-08-01T15:47:00.557";
Instant instant = Instant.parse ( input + "Z" );
时刻:2008-08-01T15:47:00.557Z
如果您的字符串用于其他时区,我们需要指定。使用适当的时区名称(从不在印刷机中看到的3-4个字母代码)。在这里,我们任意选择蒙特利尔时区。
对于格式化模式,我们使用ISO 8601的预定义格式之一:DateTimeFormatter.ISO_LOCAL_DATE_TIME
('LOCAL'表示输入字符串中没有嵌入时区或偏移量。)
System.out.println ( "instant: " + instant );
转储到控制台。我们还从String input = "2008-08-01T15:47:00.557";
ZoneId zoneId = ZoneId.of ( "America/Montreal" );
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
formatter = formatter.withZone ( zoneId );
ZonedDateTime zdt = ZonedDateTime.parse ( input , formatter );
中提取Instant
,以便您可以在UTC中看到相同的时刻。通常最好在您的业务逻辑中使用UTC;仅将输出时区应用于用户。
ZonedDateTime
输入:2008-08-01T15:47:00.557 | zdt:2008-08-01T15:47:00.557-04:00 [美国/蒙特利尔] |瞬间:2008-08-01T19:47:00.557Z