【问题标题】:Android post request for datetime to SQL ServerAndroid 向 SQL Server 发布日期时间请求
【发布时间】:2018-11-07 11:16:51
【问题描述】:

我有一个 Web 服务可以在 SQL Server 2014 中向表用户插入一个新用户。除了时间之外,所有信息都被插入,它被插入为空。

这是我在 Android 中发送数据的地方

jsonBody.put("nickname",nickname.getText().toString().trim());
jsonBody.put("firstname", firstname);
jsonBody.put("lastname",lastname);
jsonBody.put("created on", Calendar.getInstance(TimeZone.getDefault()));
jsonBody.put("phonenumber", phonenumber.getText().toString().trim());

除了时间之外,所有这些都正确发送。顺便说一句,我在 SQL 数据库中将日期的数据类型定义为 datetime。

任何帮助将不胜感激。

【问题讨论】:

  • 需要更多细节 Adem。您的 android 客户端实际上通过网络发送了什么?您的网络服务接收什么?你的网络服务到底是什么试图插入数据库。我会包括你的网络服务代码(或它的简短版本)
  • 从您提供的信息中我们无法判断。这取决于您的特定 Web 服务对 created on 的期望。

标签: java android sql web-services datetime


【解决方案1】:

我答对了。

只需替换

Calendar.getInstance(TimeZone.getDefault()

  DateFormat.getDateTimeInstance().format(new Date()).toString()

【讨论】:

  • 您的结果会因客户端的语言环境和时区而异,因此可能有很多情况它不起作用。最好使用服务器区域设置和时区。此外,您应该避免使用 DateFormat 类。它已经过时并且出了名的麻烦。最好使用java.time,现代Java 日期和时间API,以及它的java.time.format.DateTimeFormatter。或者ThreeTanABP,那么类在org.threeten.bp.format.DateTimeFormatter
猜你喜欢
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
相关资源
最近更新 更多