-1

我在 java 中格式化日期时遇到问题。我有一个购物类,其中包含字符串中的项目名称、int 中的数量和 Date 中的日期。
在运行类中,我试图运行这个查询。

Date  date = new Date(202020);
SimpleDateFormat  dateformat = new SimpleDateFormat("dd-mm-yy");
String date1 = dateformat.format(date);

Shopping shoplist1 = new Shopping ( "iphone",  2, date);

当我尝试使用日期不格式化的日期创建新的购物项目时。我不知道为什么,但它给了我 Thu Jan 01 01:03:22 GMT 1970。

4

4 回答 4

3

您使用了错误的Date类构造函数

Date  date = new Date(202020);

意味着您正在尝试分配一个 Date 对象并将其初始化以表示自称为“纪元”的标准基准时间(即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

你应该使用这样的东西:

Shopping shoplist1 = new Shopping ("iphone",  2, 
        new SimpleDateFormat("dd-MM-yy").parse("20-20-20"));

DateFormat#parse(...)阅读文档以了解和之间的更多区别DateFormat#format(...)

于 2013-04-01T08:43:51.687 回答
1

更改SimpleDateFormat dateformat = new SimpleDateFormat("dd-mm-yy");SimpleDateFormat dateformat = new SimpleDateFormat("dd-MM-yyyy");

如果我清楚地记得小mm平均分钟而不是一个月

阅读有关日期格式的这篇文章

正如@zvzdhk 所说,您错误地使用了日期构造函数。

于 2013-04-01T08:42:38.417 回答
1

根据您的评论:

“我试图添加日期 1,但它不允许它。它说字符串不能转换为日期”

您正在将字符串传递给构造函数,但看起来它可以采用 java.util.Date 对象

Shopping shoplist1 = new Shopping ( "iphone",  2, date);

更改构造函数签名以获取 String 对象

或者

传递日期对象并在任何其他相关位置执行格式化

于 2013-04-01T08:51:44.113 回答
0
  • 您从时间戳(从 1970 年开始的毫秒数)创建日期实例。我想这不是你想要做的。
  • 您将日期格式化为字符串并传递日期。如果要使用格式化日期,则必须传递字符串。
于 2013-04-01T08:44:40.733 回答