【问题标题】:Java - How to convert this string to date?Java - 如何将此字符串转换为日期?
【发布时间】:2012-08-22 20:28:06
【问题描述】:

我从服务器接收到这个,我不明白 T 和 Z 是什么意思,2012-08-24T09:59:59Z 将此字符串转换为 Date 对象的正确 SimpleDateFormat 模式是什么?

【问题讨论】:

标签: java simpledateformat


【解决方案1】:

这是ISO 8601 标准。你可以使用

SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

转换它。

【讨论】:

  • 谢谢!这是我第一次不得不使用这种类型的日期。
  • 如果时区与“Z”不同,则不会。
  • 在我的情况下,时区永远是 Z
【解决方案2】:

这是 ISO 日期时间格式,请参阅 here,T 是时间分隔符,Z 是零 UTC 偏移的区域指示符。

有一个非常相似但不完全相同的问题here,请参阅它以了解如何将此字符串转换为 Java DateTime 对象。

【讨论】:

    【解决方案3】:
    RSS 2.0 format string EEE, dd MMM yyyy HH:mm:ss z   
    Example: Tue, 28 Aug 2012 06:55:11 EDT
    
    Atom (ISO 8601) format string  yyyy-MM-dd'T'HH:mm:ssz
    Example:2012-08-28T06:55:11EDT
    
    try {
                String str_date = "2012-08-24T09:59:59Z";
                DateFormat formatter;
                Date date;
                formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
                date = (Date) formatter.parse(str_date);
                System.out.println("Today is " + date);
            } catch (ParseException e) {
                System.out.println("Exception :" + e);
            } 
    

    【讨论】:

      【解决方案4】:

      Z 代表祖鲁语 (UTC),这是 dateTime.tz 格式 (ISO-8601)。所以,你应该可以做这样的事情:

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
      

      这里有一个例子:example

      【讨论】:

        【解决方案5】:
        import org.joda.time.*;
        import org.joda.time.format.*;
        
        public class Test {
            public static void main(String[] args) {
                String text = "2012-08-24T09:59:59Z";
                DateTimeFormatter parser = ISODateTimeFormat.dateTime();
                DateTime dt = parser.parseDateTime(text);
        
                DateTimeFormatter formatter = DateTimeFormat.mediumDateTime();
                System.out.println(formatter.print(dt));
            }
        }
        

        或者只是检查那个链接 str to date

        【讨论】:

          【解决方案6】:

          也许使用优秀的joda time 库将字符串转换为日期:

          LocalDate myDate = new LocalDate("2012-08-28") // the constructor need an Object but is internally able to parse a String.
          

          【讨论】:

            【解决方案7】:
            // First parse string in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" to date object.
            
            String dateString1 = "2012-08-24T09:59:59Z";
            Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(dateString1);
            
            // Then format date object to string in pattern "MM/dd/yy 'at' h:mma".
            String dateString2 = new SimpleDateFormat("MM/dd/yy 'at' h:mma").format(date);
            System.out.println(dateString2); // 08/24/12 at 09:59AM
            

            我认为这可能对你有用。

            【讨论】:

              猜你喜欢
              • 2014-03-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-09-07
              • 1970-01-01
              相关资源
              最近更新 更多