我使用ASP.net core 5和angular 15.0分别作为后端和前端。当从客户端的用户获得日期属性时(例如,Sun Jan 01 2023 21:27:11 GMT+0330(XXX Standard Time)),在将其作为对象发布到服务器之前,将其转换为ISO格式(即,将其转换为:2023-01- 01 T17:57:11.528Z)作为对象发送到服务器保存到数据库中,从服务器中检索到相同的日期时,会提前一天显示,OffsetZone为-210(-3:30 '),如何在保存到数据库之前,通过控制器动作将时间偏移量添加到接收日期属性中(即接收日期属性转换为2023-01- 01 T21:27:11,与本地日期值完全相同)?问候
1条答案
按热度按时间cigdeys31#
不久前我们统一了前端和后端的通讯。
要点和你已经在做的一样--发送/接收UTC ISO格式的日期。这样做可以给你一个清晰的、共享的基础,让你根据需要工作。
第二部分是在我们的模型中使用
DateTimeOffset
,而不是更基本的DateTime
。这将解析ISO字符串,就像
DateTime
一样,但为x.LocalDateTime
提供了访问器选项,使其根据服务器的本地时间(听起来像您想要的)提取DateTime
值,以及根据需要使用x.UtcDateTime
检索它的基本UTC时间。例如
通过这种方式,您可以确保将
serverLocal
值而不是UTC值传递给您的服务,以便它完全按照服务器的本地时间工作。