我有一个问题,在正确的时区找回日期。
首先,在本地机器上,一切都很好,但在服务器上不行:服务器托管在美国,客户机大多在澳大利亚。
因此,一个日期从angular app(“12/23/2015 11:00:00 AM”)发送到服务器,服务器将日期作为utc存储在数据库中,直到此时一切正常(我检查了,日期存储在正确的utc中)
book.StartDateTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.SpecifyKind(book.StartDateTime.Value, DateTimeKind.Unspecified), ToolsHelper.OlsonTimeZoneToTimeZoneInfo(locationDetails.TimeZone)); // book.CreatedDate.Value.ToUniversalTime();
问题是:
当客户端请求存储在数据库中的某些日期时。存储在数据库中的日期将返回给客户端,如下所示:
bookview.StartDateTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.SpecifyKind(bookli.StartDateTime.Value, DateTimeKind.Utc), ToolsHelper.OlsonTimeZoneToTimeZoneInfo(deCompany.TimeZone));
我检查了一下,现在的日期是“12/23/2015 11:00:00 AM”->转换就在服务器中(在服务器端我放了一个日志),
但角度显示为“12/23/2015 10:00:00 PM”
所以很明显,问题是api何时将日期传输到客户端,或者何时转换为JSON
我尝试了不同的方法,但什么都不起作用,我删除了“DateTime.SpecifyKind”,我将日期转换为字符串,然后返回到DateTime格式,似乎什么也不起作用。
我能做什么?