1970年在currentTimeMillis()

时间:2017-07-19 18:58:46

标签: android sqlite date android-sqlite

我正在开发一个应用程序,我在sqlite数据库中的currentTimeMillis()中保存日期,当我读取它时,我尝试将其转换为可读格式。但是日期总是被转换为1970年1月1日。 以下是我将其保存到sqlite数据库的代码:

long date = System.currentTimeMillis();

然后我尝试按以下方式将其转换为可读格式:

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(attendance.getPicDate());
Date resultdate = new Date(attendance.getPicDate());
System.out.println(sdf.format(resultdate));

我得到以下输出:

  

1970年1月17日19:36

编辑1: attendance.getPicDate()value = 1432678159

编辑2:当我尝试保存值时,它是1500378235812,但当我读到它时,它变为上面,我的表中的列是整数。

3 个答案:

答案 0 :(得分:0)

1432678159确实转换为Jan 17,1970 19:36。

尝试检查attendance.setPicDate()。

答案 1 :(得分:0)

我发现我的错误是我使用 cursor.getInt(2)从数据库中获取日期,但现在我已将其更正为 cursor.getLong(2)并且它现在工作得很好。

答案 2 :(得分:0)

我建议,您应该在数据库中以字符串格式保存日期和时间。

Calendar calendar=Calendar.getInstance();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
String currentTime=sdf.format(calendar.getTime());

保存" currentTime"在你的数据库中。