c# - 在 MVC 的服务器端从客户端获取不同的 jsonFormat 日期
问题描述
我在客户端使用 Knockout js,在服务器端使用 MVC C#。我以2019-04-25T03:27:00.000Z (UTC +5:30) 的形式传递日期。在服务器端,我正在使用 DateTime(使用 DateTimeOffset,但由于同样的问题,我已将其更改为 DateTime)并获得不同的日期{4/25/2019 8:57:00 AM}。
问题: 1. 如果我正在更改客户端系统的时区,那么在服务器端它总是带有时间加上 +5.30 的日期。
- 我必须忽略客户端或服务器端的时间戳,以便我可以获得客户端发送到服务器的确切日期。
解决方案
我有一个类似的问题,所以这可能是发生了什么:
DateTime 有一个“Kind”属性,指示日期/时间是本地、UTC 还是“未知”。当控制器方法具有 DateTime 参数时,它会将其设置为适当的值,其中“Kind”值为“Local”。换句话说,它与客户端传输的时间相同,但被时区偏移。
要返回服务器上的 UTC,请使用 DateTime ToUniveralTime() 方法。请注意,这仅在 DateTime Kind 值为 Local 或 Utc 时才能正常工作。
例子:
public void GetDateRangeReadings(DateTime startDate)
{
startDate = startDate.ToUniversalTime();
推荐阅读
- git - 理解 GitHub 分支逻辑——rebase 后分支在前
- spring-boot - 为什么 management.server.port 不起作用?
- javascript - 将 php vars 嵌入到 json 中的问题
- vscode-settings - 在 vscode 中的整个命名空间上使用编译指示警告禁用
- sql - SQL Server:在表中插入缺失月份的默认值
- java - 通过改造在 android Studio 中获取
- django - 2 个 django 应用程序的 Nginx 配置 2 个不同的端点 1 个服务器主机
- odoo - 基于域的继承看板视图中的不可见字段
- selenium - 使用带有 selenium 的 chromedriver 时会话未创建错误
- ios15 - 更改路线时 iOS 15 视频闪烁问题上的 html5 视频标签问题