java - JAVA + SQLite - 使用 strftime() 从每一行获取格式化日期
问题描述
我已经使用 SQLite 大约一天了,并且已经设法使用 Java 在 Android Studio 中进行读写。我对这一切还是很陌生,即使是 java,所以我可能会遗漏一些非常基本的东西。
昨天我设法得到了一些工作,并达到了预期的结果。我会将年、月、...、秒保存到他们自己的列中,然后单独读取它们并手动将它们格式化为字符串。但是今天我读到 SQLite 有自己的内置日期和时间函数,当您将其存储为特定格式的文本时。
我已将所有内容更改为使用这种格式,这很容易,但我很难以特定格式读取日期。现在的格式是:
yyyy-MM-dd HH:mm:ss
但是,我想将其格式化为:
yyyy : MM : dd : HH : mm : ss
到目前为止,我只是将它存储在一个字符串列表中,这是可行的,我认为我不需要更改它。
这是读取日期的代码:
public ArrayList readHistory(){
SQLiteDatabase nutDatabase = this.getReadableDatabase();
ArrayList<String> history = new ArrayList<String>();
Cursor cursor = nutDatabase.rawQuery("select * from " + TABLE_NAME, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
String nutString = cursor.getString(dateTime);
history.add(nutString);
cursor.moveToNext();
}
return history;
}
如您所见,它目前只是将它作为一个字符串获取它当前的格式。我不知道如何实现 strftime() 但我知道它正是我需要的。
任何输入表示赞赏,谢谢!
解决方案
使用中的格式'%Y : %m : %d : %H : %M : %S'
。
因此,将您的代码更改为:strftime()
String sql = "SELECT strftime('%Y : %m : %d : %H : %M : %S', dateTime) AS dateTime FROM " + TABLE_NAME;
Cursor cursor = nutDatabase.rawQuery(sql, null);
推荐阅读
- minikube - 使用 chectl 在 minikube 上安装 che 时出现错误
- css - 引导卡在悬停时更改边框颜色
- elasticsearch - 创建索引模式的问题
- date - 如何在 openapi v3 / swagger 中指定“年份”字段?
- javascript - 在基于 Django 的电子商务应用程序中处理过滤器的 AJAX 方式在复制粘贴新选项卡中的 url 时不起作用
- php - 如何通过 shell_exec() 获取特定进程的状态?
- docker - Python.h:Amazon Linux Lambda 容器上没有这样的文件或目录
- google-analytics - 我可以多次设置谷歌分析用户ID吗?
- api - 邮递员在 .net 核心的 api 中返回未找到 404
- excel - Excel 公式 - 如何有条件地用另一个表中的值填充列