Java 如何在Android中以毫秒为单位显示日期和时间?

Java 如何在Android中以毫秒为单位显示日期和时间?,java,android,time,milliseconds,Java,Android,Time,Milliseconds,我想显示旅行的日期。在应用程序中,列出了多个跳闸,每个跳闸都有一个长值及其产生的currentTimeMillis。我想把这个long数字变成一个日期,但输出总是1970年左右的。。。System.currentTimeMillis()是存储行程生成时间的正确方法吗 Date date = new Date(trip.getStartTime()); // 195342322 SimpleDateFormat test = new SimpleDateFormat("yyyy-MM-dd");

我想显示旅行的日期。在应用程序中,列出了多个跳闸,每个跳闸都有一个长值及其产生的currentTimeMillis。我想把这个long数字变成一个日期,但输出总是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的输出

尝试用于简单的格式化

我们不知道如何实现trip.getStartTime(),但是它返回了错误的值<代码>195342322是1976年3月10日星期三格林威治标准时间21:45:22(您可以查看)

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


切换到文本表示进行序列化后,您将能够通过使用
SimpleDataFormat.parse()

返回
日期

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

如图所示。

您的行程开始时间似乎被截断了。195342322毫秒现在是1970-01-03。195342322是一个非常小的正确日期值,今天的毫秒值是1357406971942,如果您在内部从long转换为int,然后再转换回long?
setTimeInMillis
返回
void
。您的
日期将为空:(