Java中日期时间格式的转换

Java中日期时间格式的转换,java,datetime,Java,Datetime,我有一行C#代码,我正试图用Java复制。代码如下所示 n.InnerText = DateTime.Parse(n.InnerText).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); 其目的是用表示通用时间的日期替换xml上下文中已有的日期时间 我试图使用 node.setTextContent = Date.parse(node.getTextContent()) 但是我无法继续,因为Date.parse()已被弃用。我阅读了Ec

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

n.InnerText = DateTime.Parse(n.InnerText).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ");
其目的是用表示通用时间的日期替换xml上下文中已有的日期时间

我试图使用

node.setTextContent = Date.parse(node.getTextContent())
但是我无法继续,因为Date.parse()已被弃用。我阅读了Eclipse中的注释,并按照建议尝试了DateFormat,但DateFormat没有解析方法


有人能为我的问题提出一个不使用任何第三方库的解决方案吗?

您的意思是这样的:

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);

  }
}
您可以使用:

DateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssZ");
Date date = format.parse(myString);
确保检查区域设置是否合适,并检查字段是否相同(因为我不知道您要分析什么,我只是复制了它们)


(例如“T”不存在。)

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

java.time java 8和以后版本中内置的java.time框架取代了麻烦的旧日期时间类

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

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

瞬间
表示时间线上分辨率为的某个时刻


不赞成。从JDK版本1.1开始,替换为DateFormat.parse(字符串s)。@Johnathon Ender,检查并参考
  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);
Instant instant = Instant.parse( "2016-04-29T22:04:07Z" );