gpt4 book ai didi

c# - Web 方法中的默认 ASP.NET DateTime.Kind 为 UTC

转载 作者:行者123 更新时间:2023-11-30 16:59:20 25 4
gpt4 key购买 nike

我将以下 ISO 8601 日期字符串传递给 ASP.NET Web 方法:

2013-04-01T00:00:00.000Z

这会自动创建一个具有以下属性的日期对象:

Value: 3/31/2013 8:00:00 PM
Kind: Local (EDT)

这很烦人,因为我现在必须记住通过执行以下操作将所有日期对象转换为 UTC:

date = date.ToUniversalTime();

如何更改 asp.net 以使传递到 Web 方法的日期默认为 UTC 而不是服务器的本地时间?我可以使用一些配置或 Hook 来实现这一目标吗?或者这可能是不可能的?

我根本不想费心处理服务器的本地时间,因为它完全不相关。


编辑

只是添加了更多信息,因为我在上面似乎没有解释清楚。这是一些示例代码。

JavaScript:

PageMethods.SendData("2013-04-01T00:00:00.000Z");

C#:

[WebMethod]
static public void SendData(DateTime date)
{
// The value of date in here is 3/31/2013 8:00:00 PM Local
// How can I make it so the default is 04/01/2014 0:00:00 AM Utc
// without typing any extra code in here?
// How can I change ASP.NET's default behaviour?
// I don't want to rely on the developer remembering.
}

最佳答案

我找到了一个解决方法,但我仍然会接受一个答案,该答案显示了如何将 asp.net 的默认行为更改为默认为 UTC 日期,而不是 Web 方法中的服务器本地时间。

似乎在指定时区时,Date 对象中的值将默认为本地时间。

诀窍是不要超过时区。所以这些字符串中的任何一个都可以工作:

2013-04-01T00:00:00.000 // leave off the Z at the end of the ISO 8601 string

2013-04-01 00:00:00

2013-04-01

但是,这会在 Web 方法中创建一个具有以下属性的日期对象:

Value: 4/01/2013 0:00:00 AM

Kind: Unspecified

类型未指定,但日期对象属性保留为 UTC,这对我来说很重要。

关于c# - Web 方法中的默认 ASP.NET DateTime.Kind 为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23789122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com