将 datetimeoffset 传递到网络 api
Passing datetimeoffset to web api
我遇到了日期时间偏移问题。
我需要将 datetimeoffset 传递到我的网站 api,但我无法将它发送到我的网站 api。
这是我的模型 属性:
public DateTimeOffset? PlannedStart { get; set; }
public DateTimeOffset? PlannedTarget { get; set; }
这里我从 typescript 传递过来:
let body: string = JSON.stringify(this.sprintReview);
let url: string = environment.baseUrl + "api/SprintReview/SaveSprintReview";
this.baseService.post(url, body).subscribe((data: any) => {
this.alertContent = "Saved Successfully.";
}
- 我的日期时间选择器给出了这个“2018 年 4 月 21 日星期六 06:00:00 GMT+0530
(印度标准时间){}"
- 但是响应头“2018-04-21T00:30:00.000Z”
- 但是我的网站 api 收到这个“{4/21/2018 12:30:00 AM +00:00}”
我知道它会减去 5:30 小时,因为我的时区是 5:30+GMT
请帮助我将 datetimeoffset 传递到我的网站 api。我需要在数据库中保存带有偏移量的日期时间。
谢谢
您的浏览器可能已经在 HTTP header 中设置了您需要的信息,但目前我认为 W3C 还没有批准用于此目的的标准 header所以依赖它可能会有问题。
目前唯一可靠的方法是将本地计算机的时区添加到您发送的 JSON。
W3C 发表了一篇讨论时区处理问题的论文,可在 https://www.w3.org/TR/timezone/ 获取。在实施解决方案之前,您应该阅读它。
我遇到了日期时间偏移问题。 我需要将 datetimeoffset 传递到我的网站 api,但我无法将它发送到我的网站 api。 这是我的模型 属性:
public DateTimeOffset? PlannedStart { get; set; }
public DateTimeOffset? PlannedTarget { get; set; }
这里我从 typescript 传递过来:
let body: string = JSON.stringify(this.sprintReview);
let url: string = environment.baseUrl + "api/SprintReview/SaveSprintReview";
this.baseService.post(url, body).subscribe((data: any) => {
this.alertContent = "Saved Successfully.";
}
- 我的日期时间选择器给出了这个“2018 年 4 月 21 日星期六 06:00:00 GMT+0530 (印度标准时间){}"
- 但是响应头“2018-04-21T00:30:00.000Z”
- 但是我的网站 api 收到这个“{4/21/2018 12:30:00 AM +00:00}”
我知道它会减去 5:30 小时,因为我的时区是 5:30+GMT
请帮助我将 datetimeoffset 传递到我的网站 api。我需要在数据库中保存带有偏移量的日期时间。
谢谢
您的浏览器可能已经在 HTTP header 中设置了您需要的信息,但目前我认为 W3C 还没有批准用于此目的的标准 header所以依赖它可能会有问题。
目前唯一可靠的方法是将本地计算机的时区添加到您发送的 JSON。
W3C 发表了一篇讨论时区处理问题的论文,可在 https://www.w3.org/TR/timezone/ 获取。在实施解决方案之前,您应该阅读它。