我在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.
答案 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"));
之间获得更多差异
答案 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)