我正在开发一个应用程序,我在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,但当我读到它时,它变为上面,我的表中的列是整数。
答案 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"在你的数据库中。