我有一系列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没有解析方法。
有人可以建议我的问题解决方案不使用任何第三方库吗?
答案 0 :(得分:6)
您可以使用:
DateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssZ");
Date date = format.parse(myString);
请确保检查区域设置是否合适,并检查字段是否相同(因为我不知道您打算解析什么,我只是复制它们)。
(例如“T”不存在。)
答案 1 :(得分:3)
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);
答案 2 :(得分:2)
其他答案已过时,使用旧的遗留类。
Java 8及更高版本中内置的java.time框架取代了麻烦的旧日期时间类。
您的输入字符串恰好采用标准ISO 8601格式。
在解析/生成日期时间值的String表示时,java.time类默认使用ISO 8601格式。因此无需指定格式化模式。
Instant
代表UTC中时间轴上的一个时刻,分辨率为nanoseconds。
Instant instant = Instant.parse( "2016-04-29T22:04:07Z" );
答案 3 :(得分:0)
你的意思是这样的:
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);
}
}