簡體   English   中英

在 Java 中轉換日期時間格式

[英]Converting Date time format in Java

我有一行 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 沒有解析方法。

有人可以為我的問題提出不使用任​​何第三方庫的解決方案嗎?

您可以使用:

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 8 和更高版本中內置的 java.time 框架取代了麻煩的舊日期時間類。

ISO 8601

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

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

InstantUTC時間表示時間軸上的一個時刻,分辨率為納秒

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM