chi*_*mbu 3 java sqlite android
我有一个Sqlite3数据库表,包含姓名,地址,出生日期详情.我想显示1990-01-01到1995-01-01的详细信息.
但Sqlite3数据库仅存储以下数据类型.
TEXT
NUMERIC
INTEGER
REAL
NONE
Run Code Online (Sandbox Code Playgroud)
任何人都有一些提示来存储和检索日期格式数据..?
根据我自己在Android中使用数据库做几个项目的经验,我的答案是:
不要将日期存储为字符串.决不!永远!将它们存储为Unix时间戳,并在运行时根据需要对其进行格式化.
这里重要的是要分开你有什么数据,什么是你的数据在屏幕上的表示.在数据库中存储数据的屏幕表示是错误的.
您始终将日期存储为INTEGER类型.
因此,例如,为了存储日期,您将存储该值 System.currentTimeInMilis
要在1990-01-01和1995-01-01之间进行选择,您将:
long val1 = new GregorianCalendar(1990, 01, 01).getTimeInMillis();
long val2 = new GregorianCalendar(1995, 01, 01).getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)
然后你将SELECT在这两个值之间做正常的陈述.
在yyyy-MM-dd您使用SimpleDateFormat该类时在屏幕上显示这些值:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
long longDate = cursor.getLong(colNumber); // from the database
String stringDate = dateFormat.format(new Date(longDate));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11495 次 |
| 最近记录: |