【发布时间】:2015-07-08 12:45:40
【问题描述】:
是否定义了应在 SAP Netweaver 网关服务的 OData Edm:DateTime 中发送哪些值? 特别是它应该总是被解释为 UTC 吗?
如果接口定义正确,我假设 SAPUI5 库足够智能,可以自动处理所有这些时区问题——问题是,什么是正确的?
我更喜欢在客户端使用这样的代码:
new sap.m.DatePicker({
value : {
path : "BirthDate",
type : new sap.ui.model.type.Date
}
}),
你如何解决这些问题?
编辑
时区处理对我来说似乎仍然很陌生。 SAP 网关服务器发送 Edm:DateTime 如下:2015-04-16T00:00:00 缺少任何时区信息。
如果我像这样绑定日期选择器:
var oContent = new sap.m.DatePicker({
value : {
path : "Date",
type : new sap.ui.model.type.Date({
style: "short",
})
}
})
我得到以下输出:16.04.15(似乎是正确的)。 绑定没有类型信息的日期选择器显示:Thu Apr 16 2015 02:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
如果我使用日期选择器将日期更改为 17.04.15,则第二行是: 2015 年 4 月 17 日星期五 00:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) 请注意时差(缺少 2 小时)。
如果我将它发送到服务器,我得到 Edm.DateTime == 2015-04-16T00:00:00 控制显示: 2015 年 4 月 16 日星期四 02:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
如果我使用
new sap.m.DatePicker({
value : {
path : "Date",
type : new sap.ui.model.type.Date({
style: "short",
UTC: true
})
}
})
数据似乎正确(选择新日期后的 2 小时没有丢失)。
我在问我,有没有定义什么类型的数据网关会发送? 如果 Edm.DateTime 信息中缺少时区,客户端应该如何正确工作?特别是如果客户在不同的时区可用?
很奇怪,我在使用过滤器时遇到了类似的问题。但是那里的 UTC 标志似乎不起作用。
有人对这个话题有一些经验吗?或者有什么好的文档提示? * https://sapui5.netweaver.ondemand.com/sdk/#docs/guide/91f3070d6f4d1014b6dd926db0e91070.html 或多或少说“保重”,但不说如何:-/
更多信息
我在 SAP 网络 (http://scn.sap.com/thread/3574419) 上检测到了同样的问题。不确定给定的答案是否正确。看起来像是在不应该要求的元数据中四处乱窜?
我仍在寻找解决此问题的方法
在绑定和过滤器使用情况下,我检测到不同的数据处理方式。
【问题讨论】:
-
链接的问题可能是重复的,对吗?这里是两岁,另一个只有 3 个月。
-
问题的年龄不一定决定什么应该被标记为重复,什么不是。见meta.stackexchange.com/q/147643 和meta.stackoverflow.com/q/348561。