繁体   English   中英

java字符串到日期时间的转换问题

[英]java string to datetime conversion issue

我似乎看不到下面示例代码的问题。 出于某种原因,似乎忽略了年份并说日期相同,如下面的输出所示。 我一定错过了一些简单的东西。

01/28/2006
01/16/2007
2008 年 4 月 1 日星期二 00:00:00 PDT
2008 年 4 月 1 日星期二 00:00:00 PDT
完毕

import java.util.*;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

    class ExampleProgram {
      public static void main(String[] args){
        DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        String d1String = "01/28/2006";
        String d2String = "01/16/2007";
        System.out.println(d1String);
        System.out.println(d2String);
        Date d1=null;
        try {
            d1 = df.parse(d1String);
        } catch (ParseException e) {                
            System.out.println(e.getMessage());
        }           
        Date d2=null;
        try {
            d2 = df.parse(d2String);
        } catch (ParseException e) {                
            System.out.println(e.getMessage());
        }
        System.out.println(d1);
        System.out.println(d2);
        System.out.println("done");
      }
    }
"dd/MM/yyyy"

应该读:

"MM/dd/yyyy"

正如彼得所提到的,字母的含义可以在这里的文档中找到: https : //docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html

它没有给你你期望的原因就像彼得说SimpleDateFormat应该读为"MM/dd/yyyy"

结果表明它们似乎相等的原因是因为使用您给它的格式"dd/MM/yyyy"d1String的月份是 28。它需要 28 - 12,加上一年, 16 - 12,再加一年,结果是 4(四月),现在是 2008 年。 d2String

您可以尝试将日期声明为Date对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM