将DATE / TIMESTAMP从设备发送到REST服务

时间:2018-02-14 10:43:23

标签: android rest datetime oracle-sqldeveloper

我正在尝试通过我的REST服务向SQL oracle数据库发送日期和时间。但是,SQL数据库中的字段变为空。

以下是获取日期和时间的代码:

 public void getCurrentDateandTime() throws ParseException {
    Calendar c = Calendar.getInstance();
    c.getTime();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    currentDateandTime = dateFormat.format(c.getTime());
    CDAT = dateFormat.parse(currentDateandTime);
}

在我的REST服务中,此字段被指定为日期数据类型,但是我正在使用的时间是TIMESTAMP,因为我想获取日期和时间。

当我使用邮递员通过这样的测试数据发送时:

"createdTimestamp": "2018-02-12T09:27:39"

正在接收并显示在我的SQL数据库中。

为什么我从Android发送的日期收到空?

2 个答案:

答案 0 :(得分:0)

试试这个好友:

    Calendar c = Calendar.getInstance();
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String formattedDate = df.format(c.getTime());

然后发送此formattedDate字符串。使其成为字符串类型,然后将您的字符串解析为datetime对象。希望这有效。快乐编码:)

答案 1 :(得分:0)

大多数REST API都以iso8601格式作为标准。

java代码如下:

TimeZone tz = TimeZone.getTimeZone("UTC");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"); 
df.setTimeZone(tz);
String nowAsISO = df.format(new Date());

然后在Oracle中回来是:

to_timestamp('2018-02-14T00:00:00.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.ff3"Z"')