在Java中转换日期时间格式

我有一行C#代码,我试图用Java复制。 代码如下所示。

n.InnerText = DateTime.Parse(n.InnerText).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); 

目的是将xml上下文中的DateTime替换为表示通用时间的DateTime。

我试图使用

 node.setTextContent = Date.parse(node.getTextContent()) 

但由于不推荐使用Date.parse(),我无法继续。 我阅读了Eclipse中的注释,并按照建议尝试了DateFormat,但是DateFormat没有解析方法。

有人可以建议我的问题的解决方案,不使用任何第三方库?

您可以使用:

 DateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssZ"); Date date = format.parse(myString); 

请务必检查区域设置是否合适,并检查字段是否相同(因为我不知道您打算解析什么,我只是复制它们)。

(例如“T”不存在。)

  Date d = new Date(); (java.text) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("Etc/UTC")); String formatted = sdf.format(d); 

其他答案已过时,使用旧的遗留类。

java.time

Java 8及更高版本中内置的java.time框架取代了麻烦的旧日期时间类。

ISO 8601

您的输入字符串恰好是标准的ISO 8601格式。

在解析/生成日期时间值的String表示时,java.time类默认使用ISO 8601格式。 因此无需指定格式化模式。

Instant表示UTC时间轴上的一个时刻,分辨率为纳秒 。

 Instant instant = Instant.parse( "2016-04-29T22:04:07Z" ); 

你的意思是这样的:

 import java.util.Date; import java.text.SimpleDateFormat; public class DateFormat{ public static void main(String[] args){ Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String yourDate=sdf.format(date); System.out.println(yourDate); } }