如何使用客户的时区将 asp.net 日期时间反序列化为 JSON 日期时间
How to deserialize asp.net datetime as JSON datetime with client's timezone
我对日期时间有点费劲。我正在使用 asp.net mvc api 控制器、微软 sql 服务器和 AngularJS。
单击某些按钮,我将向 api 控制器发送一个 JSON 格式的日期。当我 post 2015-11-31 00:00 并在 Fiddler 中查看真正的 post 时,我看到日期格式如下:2015-11-30T23:00:00.000Z. (2015-11-31 - 1 小时 UTC+01:00 阿姆斯特丹、柏林、柏林....)这很完美,因为 sql 服务器所在的时区与客户端可能存在差异。 (或者是吗?)
但问题是:当我从 sql 服务器取回日期时,它没有考虑客户端的时区。当我从 sql 服务器读取 DateTime 对象并且我 return 它被格式化为 JSON 时,显示的日期是:2015-11-30T23:00:00.000Z。我希望它在客户所在的时区增加 1 小时。
我的问题是:在反序列化从我的 api-controller 返回的 JSON 字符串时,我该怎么做才能使时区保持在帐户中?
TIA!
问题是当对象被反序列化时,日期 属性 是 不是 DateTime 类型。它是字符串类型。只需使用 new Date("2015-11-30T23:00:00.000Z") 将其转换为日期即可。
我为它制作了过滤器:
.filter('from_gmt_to_local_date', [function () {
return function (text) {
return new Date(text);
};
}])
用法:
{{contract.StartDate | from_gmt_to_local_date | date:'dd-MM-yyyy'}}
希望这对任何人都有帮助。
我对日期时间有点费劲。我正在使用 asp.net mvc api 控制器、微软 sql 服务器和 AngularJS。
单击某些按钮,我将向 api 控制器发送一个 JSON 格式的日期。当我 post 2015-11-31 00:00 并在 Fiddler 中查看真正的 post 时,我看到日期格式如下:2015-11-30T23:00:00.000Z. (2015-11-31 - 1 小时 UTC+01:00 阿姆斯特丹、柏林、柏林....)这很完美,因为 sql 服务器所在的时区与客户端可能存在差异。 (或者是吗?)
但问题是:当我从 sql 服务器取回日期时,它没有考虑客户端的时区。当我从 sql 服务器读取 DateTime 对象并且我 return 它被格式化为 JSON 时,显示的日期是:2015-11-30T23:00:00.000Z。我希望它在客户所在的时区增加 1 小时。
我的问题是:在反序列化从我的 api-controller 返回的 JSON 字符串时,我该怎么做才能使时区保持在帐户中?
TIA!
问题是当对象被反序列化时,日期 属性 是 不是 DateTime 类型。它是字符串类型。只需使用 new Date("2015-11-30T23:00:00.000Z") 将其转换为日期即可。
我为它制作了过滤器:
.filter('from_gmt_to_local_date', [function () {
return function (text) {
return new Date(text);
};
}])
用法:
{{contract.StartDate | from_gmt_to_local_date | date:'dd-MM-yyyy'}}
希望这对任何人都有帮助。