点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
决定最终提出这个问题,因为我相信我们中的许多人都在为UI5中只处理日期Edm.DateTimes的正确方法而苦苦挣扎(不需要手动操作 日期(JavaScript中的日期),所以我们开始:
我知道OData v4(带有sap.ui.model.type.Date)可能会解决所有带有日期的问题,但是现在,我想获得一个 如何正确地将ABAP中的日期值绑定到DatePicker的想法,使您可以使用UTC日期时间来避免UI5和ABAP之间的转换问题(澳大利亚下午的问题)。
换句话说-我有一个Edm.DateTime字段,该字段连接到ABAP Date数据元素,以便自动转换(我不想使Gateway服务复杂化并使用其他数据类型)。
现在,当我使用sap.m.DatePicker时,我将Edm.DateTime属性绑定到DatePicker的" dateValue"。
这很好,除了会给我一个问题 下午在A 因为日期转换不正确。
因此,如果我尝试使用以下方法绑定到dateValue:
{path:'DateOfBirth',请键入:'sap.ui.model.type.DateTime ',约束条件:{displayFormat:'Date'},formatOptions:{UTC:true}}
这实际上并没有绑定。
我可以将其绑定到value和 它看起来像是可行的,但是在更新odata属性之前错过了验证日期值的整个过程,这是我需要的功能。
Graham Robinson在谈到使用Edm.DateTimeOffset时提到过,但这确实 似乎不允许您将其映射到仅包含日期的ABAP字段,因此尽管目前我也了解Edm.DateTime将来将为此退休,但我已经排除了这一点,但这可能无法完成 直到Edm.Date在Gateway(Odata v4)中可用。
任何人在这里都有最佳做法?
谢谢
Matt
好-如果您为出生日期定义了DatePicker,则以" a"解决方案开始:
在绑定OData属性的同时,我们使用change事件将属性手动更新为UTC偏移本地时区,如下所示:
请注意,如果清除了DatePicker值,我们将让默认绑定将DateOfBirth的更新处理为空。
所有操作,虽然不理想,但这是建议的解决方案 我们在OData的v4上。
这里的工作很棒...我在Chrome上工作得很好,但在IE上却没问题。 此解决方案在两个方面都有效! ;-)
一个更简单,更整洁的解决方案-
{路径:'DateOfBirth',类型:'sap.ui.model.odata.type.DateTime',约束条件:{displayFormat:'Date'},formatOptions:{pattern:'MM-dd-yyyy'}}
嗨,马特,
在这种情况下这是行不通的,因为您的解决方案只有将其设置为yyyy-MM-ddT00:00:00才行。
所提供的解决方案在从SAP获取并在UI中显示时有效,并且我们在特定于浏览器的时区将日期转换为前一天。
感谢Matt,此解决方案解决了我的问题 datapicker和abap后端之间的休假问题
没问题,Kemin。 似乎可行,尽管尚未在每个时区中对夏令时和午夜进行详尽的测试(而且永远不会)...
您的帖子挽救了我的命! S2
一周热门 更多>