Java日期格式

时间:2013-04-01 08:40:14

标签: java string date format db4o

我在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);

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

4 个答案:

答案 0 :(得分:3)

您使用了错误的Date class constructor

Date  date = new Date(202020);

表示您正在尝试分配Date对象并将其初始化以表示自标准基准时间(称为“epoch”)以来的指定毫秒数,即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(...)

之间获得更多差异

答案 1 :(得分:1)

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

如果我清楚地记得小mm平均分钟而非月份

Read this post about date formatting

和@zvzdhk一样,你错误地使用了日期构造器。

答案 2 :(得分:1)

来自你的评论:

“我试图添加日期1,但它不会允许它。它表示字符串无法转换为日期”

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

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

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

OR

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

答案 3 :(得分:0)

  • 您可以从时间戳(1970年的毫秒)创建日期实例。我想这不是你想做的事。
  • 您将日期格式化为字符串并传递日期。如果要使用格式化日期,则必须传递字符串。