无法应用BasicNameValuePair中的BasicNameValuePair(String,java.lang.String)

时间:2015-07-17 12:46:51

标签: java mysql date

我目前正在使用此代码在数据库中存储两个字符串(newCategory& reportDate):

String newCategory = spinnerFood.getSelectedItem().toString();

            // Create an instance of SimpleDateFormat used for formatting
            // the string representation of date (month/day/year)
            DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
            // Get the date today using Calendar object.
            Date today = Calendar.getInstance().getTime();
            // Using DateFormat format method we can create a string
            // representation of a date with the defined format.
            String reportDate = df.format(today);

            // Preparing post params
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("name", newCategory));
            params.add(new BasicNameValuePair("dtime", reportDate));

            ServiceHandler serviceClient = new ServiceHandler();

            String json = serviceClient.makeServiceCall(URL_NEW_CATEGORY,
                    ServiceHandler.POST, params);

这会成功存储名称字符串。但是数据库中的日期和时间数据包含值:

0000-00-00 00:00:00

如果我将日期字符串更改为日期/时间格式,如下所示:

df.format(today);

        params.add(new BasicNameValuePair("dtime", today));

我收到错误:

BasicNameValuePair中的BasicNameValuePair(String,java.lang.String)无法应用

to(String,java.util.date)

有人可以告诉我如何将日期和时间值存储到数据库中吗?

3 个答案:

答案 0 :(得分:0)

mysql

现在将此值存储到列类型为timestamp的{​​{1}} db。 现在使用jdbc代码从db。

中检索数据
  java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp(index);//now retrieve here

For more?

答案 1 :(得分:0)

您可以将params的日期和时间添加为格式化字符串

 params.add(new BasicNameValuePair("dtime", reportDate));

然后,处理db调用的代码将使用mysql函数STR_TO_DATE(...)将字符串格式化为所需的DateTime。

答案 2 :(得分:0)

我发现如果你想创建一个连接数据库并存储当前时间的应用程序,那么最好在sql表中创建一个Timestamp列,并使其值为CURRENT_TIME。您实际上并不需要在程序中获取当前时间,然后将其发送到您的桌面。您只需将所需的任何数据发送到表中,然后此Timestamp列将存储您将该数据发送到表的当前时间。