我正在尝试通过我的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发送的日期收到空?
答案 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"')