【问题标题】:Converting Date time format in Java在 Java 中转换日期时间格式
【发布时间】:2013-06-03 13:47:44
【问题描述】:

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

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

【问题讨论】:

标签: java datetime


【解决方案1】:

你可以使用:

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

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

(例如“T”不存在。)

【讨论】:

    【解决方案2】:
      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);
    

    【讨论】:

      【解决方案3】:

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

      java.time

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

      ISO 8601

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

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

      Instant 代表UTC 中时间轴上的一个时刻,分辨率为nanoseconds

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

      【讨论】:

        【解决方案4】:

        你的意思是这样的:

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

        【讨论】:

          【解决方案5】:
          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"));
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-01-19
            • 2011-08-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多