0

我想显示旅行的日期。在应用程序中列出了几个行程,每个行程都有一个很长的值,其中包含其一代的 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

4

3 回答 3

1

尝试使用日历进行简单的格式化

于 2013-01-05T17:34:18.743 回答
0

我们不知道trip.getStartTime()是如何实现的,但是它返回了一个错误的值。1953423221976 年 3 月 10 日星期三 21:45:22 GMT(您可以在线查看)

由于唯一不推荐使用的Date构造函数接受一个long参数,我猜你使用了它。最好以数据库友好的方式存储日期(时间),例如 ISO 8601。请注意,如果您将其存储在客户端的 SQLite 数据库中,则 SQLite 没有时间类型,您必须使用文本字段。

Date一旦切换到文本表示进行序列化,您将能够通过使用取回 aSimpleDateFormat.parse()

于 2013-01-05T17:49:21.120 回答
0

使用这样的东西:

Calendar calendar=Calendar.getInstance();
calendar.setTimeInMillis(trip.getStartTime());
Date date =calendar.getTime ();

如此处所示。

于 2013-01-05T19:50:08.387 回答