【问题标题】:How do I create a date field in sqlite and define the date format for it?如何在 sqlite 中创建日期字段并为其定义日期格式?
【发布时间】:2016-03-29 12:26:39
【问题描述】:

我想将日期字段存储到我的数据库中。为了做到这一点,我想我可能需要一种格式来存储在数据库中。

如何设置该日期字段的格式?在java代码部分,我应该使用的变量,它是一个整数吗?还是只是一个字符串?

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为它缺少对 SQLite TimeStrings 的先前搜索

标签: android string sqlite datetime android-studio


【解决方案1】:

您可以将 DATE 字段用作 varChar,即字符串格式。

ex : 将此日期添加到您的表格中 COLUMN_varDisplayDate + " Text ,"

使用此方法根据您的要求格式化日期,

public static String getDateFormat(String date) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
        String convertedDate = "";
        try {
            Date parseDate = dateFormat.parse(date);
            SimpleDateFormat fmtOut = new SimpleDateFormat("yyyy-MM-dd");
            convertedDate = fmtOut.format(parseDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return convertedDate;
    }

【讨论】:

  • 所以数据库只能存储(yyyy-MM-dd)的格式?连字符是必需的吗?
  • 并且日期字段应该存储字符串(因为带有连字符)?还是只是整数?
  • 在字符串中取日期比在整数中容易,所以这是有效的方法,否则会很复杂。
  • 那么它存储了一个字符串之后,而且是一个日期类型,已经可以通过语句进行比较了?
  • 是的,你可以这样做,以后如果你想改变格式,你可以这样做。
【解决方案2】:

Allowed Date-Time format in SQLite:

YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD 

如何设置该日期字段的格式?

使用 SimpleDateFormat 将现有的日期对象或日期字符串对象格式化为上述指定格式。

我应该使用的变量,它是整数吗?还是只是一个字符串?

字符串

【讨论】:

    【解决方案3】:

    您可以以 秒数的形式存储日期(自 1970 年 1 月 1 日起)。 它可以以整数格式存储。要以秒的形式获取日期,您可以使用 Calendar 类的 getTimeInMillis() 函数,它以毫秒为单位提供时间并将其除以 1000。

    为了以用户可读的格式显示它,您可以根据您使用的数据库来格式化该日期。 对于 Sqlite,您可以使用 strftime 函数以所需格式检索日期。

    http://www.w3resource.com/sqlite/sqlite-strftime.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多