我想显示旅行的日期。在应用程序中列出了几个行程,每个行程都具有其生成的currentTimeMillis的长值。我想将这个长数字转换为日期,但输出总是在1970左右... System.currentTimeMillis()是存储行程生成时间的正确方法吗?
Date date = new Date(trip.getStartTime()); // 195342322
SimpleDateFormat test = new SimpleDateFormat("yyyy-MM-dd");
startTime.setText(String.valueOf(test.format(date)));
- > startTime的输出:1970-01-01
答案 0 :(得分:1)
尝试使用Calendar进行简单格式化
答案 1 :(得分:0)
我们不知道如何实现trip.getStartTime()
,但它返回了错误的值。 195342322
是星期三,1976年3月10日21:45:22 GMT(您可以查看online)
由于唯一不推荐使用的Date
构造函数接受long
参数,我猜你用过它。最好以数据库友好的方式存储日期(时间),例如ISO 8601.请注意,如果将它存储在SQLite数据库中的客户端上,则SQLite没有 time 类型,你必须使用 text 字段。
切换到序列化的文字表示后,您将可以使用Date
SimpleDateFormat.parse()
答案 2 :(得分:0)
使用类似的东西:
Calendar calendar=Calendar.getInstance();
calendar.setTimeInMillis(trip.getStartTime());
Date date =calendar.getTime ();
如图所示here。