【问题标题】:Saving a date of type string into a database as type Date将字符串类型的日期作为日期类型保存到数据库中
【发布时间】:2013-11-29 15:11:11
【问题描述】:

我需要将几个日期保存到 Java 数据库中。这些日期首先作为字符串接收。如何转换它们并将它们保存为数据库中的日期?我打算使用 STR_TO_DATE 函数,但在这种情况下查询的语法会是什么样子?

这是我目前所拥有的:

public void addRow(Integer id, String infName, String infType,
    String domain, String language, String validType, Integer infoTypeId,
    String value, String effDate, String expDate, String processingTime)
    {
        String query="id+infName+language";
        if(query!=KEY)
        {
            try
            {
                                    // asking for a database
                SQLiteDatabase db=this.getWritableDatabase();
                ContentValues values=new ContentValues();

                values.put(PERSON_ID,id);
                values.put(INFO_NAME,infName);
                values.put(INFO_INPUT_TYPE,infType);
                values.put(INFO_DOMAIN, domain);
                values.put(INFO_LANGUAGE, language);
                values.put(INFO_REG_EX, validType);
                values.put(INFO_TYPE_ID,infoTypeId);
                values.put(INFO_VALUE, "NoValue");

// DATE-shouldnt be added as a string but as a DATE or TIMESTAMP
                values.put(INFO_EFFECTIVE_DATE, effDate);
// DATE-shouldnt be added as a string but as a DATE or TIMESTAMP
                values.put(INFO_EXPIRY_DATE, expDate);

                values.put(INFO_PROCESSING_TIME, processingTime);
                db.insert(TABLE_PROFILE,null,values);

                db.close();
            }
            catch(Exception e)
            {
                Toast.makeText(mContext,
                                        "Error in Inserting to Database",
                                         Toast.LENGTH_LONG).show(); 
            }
        }
    }

【问题讨论】:

  • 尽管很难找到这方面的信息,但我已经为您完成了:google.ch/…
  • 我总是喜欢将时间戳保存为毫秒,例如 System.currentTimeMilliseconds。然后我可以在检索它时做任何我想要的格式。在查询 SQLite 数据库时也更容易进行搜索等。

标签: java android database string date


【解决方案1】:

JodaTime 非常适合在 Java 中处理日期

【讨论】:

    【解决方案2】:

    解决问题的步骤:

    1. 为您的问题添加语言标签。您的代码看起来像 Java,但我不认识 Toast。
    2. Google 搜索“java 格式日期”。尝试查找 Java 解决方案(其他解决方案也是如此)时,Google 搜索始终是最佳起点。
    3. 查找并阅读 SimpleDateFormat API 页面 (JSE 6.0 SimpleDateFormat Page)。
    4. 编写一个测试程序来弄清楚如何使用 SimpleDateFormat。
    5. 使用 SimpleDateFormat。

    这里是一些示例来源:

    Date date = null;
    final String dateValue = "12Nov2013";
    final DateFormat dateFormat = new SimpleDateFormat("ddMMMyyyy");
    
    try
    {
        date = dateFormat.parse(dateValue);
        System.out.println("Parsed Date: " + date);
    }
    catch (ParseException exception)
    {
        System.out.println("ParseException: " + exception);
    }
    
    

    【讨论】:

      猜你喜欢
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2018-04-09
      • 1970-01-01
      相关资源
      最近更新 更多