-2

我有一行要在 Java 中复制的 C# 代码。代码如下所示。

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

目的是将 xml 上下文中已经存在的 DateTime 替换为表示通用时间的日期时间。

我试图使用

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

但由于 Date.parse() 已被弃用,我无法继续。我通读了 Eclipse 中的注释并按照建议尝试了 DateFormat,但 DateFormat 没有解析方法。

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

4

5 回答 5

7

您可以使用:

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

如果合适,请务必检查语言环境,并检查字段是否相同(因为我不知道您打算解析什么,我只是复制了它们)。

(例如“T”不存在。)

于 2013-06-03T13:55:10.657 回答
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);
于 2013-06-03T13:55:22.027 回答
2

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

java.time

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

ISO 8601

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

java.time 类在解析/生成日期时间值的字符串表示时默认使用ISO 8601格式。所以不需要指定格式模式。

An表示UTCInstant时间线上的时刻,分辨率为纳秒

Instant instant = Instant.parse( "2016-04-29T22:04:07Z" );
于 2016-04-30T03:43:59.180 回答
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);

  }
}
于 2013-06-03T13:55:06.283 回答
0
package com.pnac;

import org.joda.time.DateTime;

public class TestDateTime {
    public static void main(String[] args) {
        DateTime dateTime = new DateTime();

        System.out.println("@@@@@@@@@@ " + dateTime.minusHours(10).toString("yyyy-MM-dd HH:mm:ss"));
    }
}
于 2021-10-23T13:19:46.823 回答