java - 为什么此代码显示不同的日期?

标签 java date

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {

    public static void main(String[] args) throws ParseException {

        SimpleDateFormat datef = new SimpleDateFormat("dd/mm/yyyy");

        Date date1 = new Date(2010, 03, 03) ;
        Date date2 = datef.parse("03/03/2010") ;

        System.out.println( date1 );
        System.out.println( date2 );
    }
}

给出以下输出:

Sun Apr 03 00:00:00 MST 3910

Sun Jan 03 00:03:00 MST 2010

为什么会给出不同的结果?

最佳答案

新日期(2010, 03, 03):

这需要第一个参数为 year-1900,第二个参数为月(从 0 开始为一月),第三个参数为日

你得到输出为 'Sun Apr 03 00:00:00 MST 3910' => consutructor 将 1900 添加到作为第一个参数传递的年份。第 3 个索引的 4 月。

已弃用此构造函数。

输出 'Sun Jan 03 00:03:00 MST 2010' 的原因:您没有使用正确的格式, 如果您使用“dd/MM/yyyy”,那么您将获得正确的输出。

希望对你有帮助

关于java - 为什么此代码显示不同的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370501/

相关文章:

java - JSF 2 : Create a custom component with CommandButton and get attribute to ActionListener

java - 是否可以在 javax.mail.MimeMessage 中隐藏电子邮件地址?

mysql - 仅将日期和月份与 mysql 中的日期字段进行比较

javascript - moment.js 在解析格式错误的日期时会做一些奇怪的事情

PHP mysql 插入日期格式

java - 找不到主类 x。程序将会退出

java - Spring MVC 找不到映射错误

java - 用可序列化函数包装不可序列化类型

javascript - 两个日期之间的日期选择器差异失败

android - 日期到 SQLite