我在后端使用Domino创建了一个AngularJS HTML应用程序。通过DDS进行通信100%休息 当我发送日期值时,他们不会在Domino文档上转换为日期项。值始终存储为字符串 我在日期字符串上尝试了各种格式而没有运气 有谁知道这可能是Domino数据服务的可能吗? 我使用Angulars $ http服务和PATCH方法仅更新更改的值
答案 0 :(得分:0)
可以使用Domino Data Services在文档中存储/更新数据。
要使其正常工作,您需要以ISO 8601 Extended格式将日期作为字符串发送。这是toISOString()
函数在JavaScript中为Date
对象返回的格式。在您尝试创建或更新的表单上,您需要将该字段添加为Date/Time
字段。无需将computewithform
参数添加到请求中。
这是一个示例JSON对象,当作为POST
或PATCH
请求发送到DDS时,将创建/更新LastVisit
字段作为DateTime字段(假设字段在表格上。
{
"FirstName":"Barney",
"LastName":"Bloomberg",
"LastVisit" : "2013-12-21T12:18:18Z"
}
答案 1 :(得分:0)
json字符串中的字段名称必须与表单上的完全一样 我有类似的问题,我在表单上有一个名为'TTL'的字段,但我的json由API使用类生成,该字段被命名为'ttl'。
这导致String为日期字段的值,而不是日期。
答案 2 :(得分:0)
这适用: - )
我已按以下方式扩展了我在my presentation中使用的示例:
添加了一个字段" WakeupTime"在表格上。将其设置为日期/时间,然后选择显示日期和时间。示例输出为08-01-2016 16:11:42
。
因此,请使用以下网址阅读示例数据:
.../json.nsf/api/data/documents/unid/33735D0BCE799E01C1257CC3007A7221
我得到这样的回复:
{
"@href": "/demo/json.nsf/api/data/documents/unid/33735D0BCE799E01C1257CC3007A7221",
"@unid": "33735D0BCE799E01C1257CC3007A7221",
"@noteid": "902",
"@created": "2014-04-23T22:17:26Z",
"@modified": "2016-01-08T15:09:57Z",
"@authors": [
"Anonymous",
"CN=John Dalsgaard/O=D-D"
],
"@form": "Person",
"Unid": "33735D0BCE799E01C1257CC3007A7221",
"Key": "33735D0BCE799E01C1257CC3007A7221",
"Name": "Peter Hansen",
"Email": "ph@mail.dk",
"YearBorn": 1955,
"WakeupTime": "2016-08-01T05:33:10Z"
}
重要! - 这给了我需要用于WakeupTime字段的确切格式!
因此,如果我随后使用选择字段发布PATCH
:
{
"Email":"peter.hansen@mail.dk",
"YearBorn":1953,
"WakeupTime":"2016-01-08T05:33:40Z"
}
...然后重新读取数据,然后更新字段。如果我签入Notes客户端,我可以看到该字段是日期/时间字段: - )
如果我创建一个新的条目/文档也会出现同样的情况 - 该字段仍然是正确的类型。
你必须非常清楚如何处理时区!数据以GMT
传输: - )