我使用提交日期保存数据,但是我的插入日期更改为当前日期
保存数据时
Calendar currentDate=Calendar.getInstance();
DatabaseOperations DB = new DatabaseOperations(ctx);
DB.putInformation(DB, done_today1 + "\n" + done_today2 + "\n" + done_today3, thankful_for1 + "\n" + thankful_for2 + "\n" + thankful_for3 + "\n" + thankful_for4 + "\n" + thankful_for5, for_relationship, for_kids, for_business, currentDate.get(Calendar.DATE) + "-" + currentDate.get(Calendar.MONTH) + "-" + currentDate.get(Calendar.YEAR));
将数据插入表格
public void putInformation(DatabaseOperations dop,String happenedToday,String thankfulFor,String forRelationship,String forKids,String forBusiness,String currentDate){
SQLiteDatabase SQ=dop.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(TableData.TableInfo.DONE_TODAY, happenedToday);
cv.put(TableData.TableInfo.THANKFUL_FOR,thankfulFor);
cv.put(TableData.TableInfo.FOR_RELATIONSHIP,forRelationship);
cv.put(TableData.TableInfo.FOR_KIDS,forKids);
cv.put(TableData.TableInfo.FOR_BUSINESS,forBusiness);
cv.put(TableData.TableInfo.CURRENT_DATE,currentDate);
SQ.insert(TableData.TableInfo.TABLE_NAME, null, cv);
Log.d("Database operations", "One Row Inserted");
当我以这种方式检索日期时
Cursor CR = dop.getInformation(dop);
CR.moveToFirst();
Toast.makeText(DisplayTable.this,""+CR.getString(5),Toast.LENGTH_LONG).show();
我收到的是当前日期,而不是提交数据的日期。
任何人都知道为什么会这样?
答案 0 :(得分:0)
在SQL中,CURRENT_DATE
是一个引用当前日期的关键字。
要访问具有相同名称的列,您必须引用列名称(双引号用于标识符;单引号用于字符串):
> CREATE TABLE t(current_date);
> INSERT INTO t VALUES('x');
> SELECT current_date FROM t;
2015-09-28
> SELECT "current_date" FROM t;
x
> SELECT 'current_date' FROM t;
current_date
使用不同的列名称可能更好。
答案 1 :(得分:-1)
处理日期和时间的最佳方法是始终使用ISO标准时间戳,即T和Z的时间戳。这样可以轻松地在不同时区内翻译实际日期。
另一种方法是使用unix时间戳保存日期和时间,它是一个可以转换为不同时区的实际日期的长整数,因此它将始终根据您的时区反映正确的时间。