c# – 将UTC DateTime转换为本地DateTime

c# – 将UTC DateTime转换为本地DateTime,第1张

概述我有以下ASP.Net MVC控制器方法: public ActionResult DoSomething(DateTime utcDate){ var localTime = utcDate.ToLocalTime();} 问题是localTime将具有与utcDate完全相同的值.我假设这是因为utcDate不知道它有一个UTC值.所以我的问题是如何将utcDate(我知道是UTC) 我有以下ASP.Net MVC控制器方法:
public ActionResult DoSomething(DateTime utcdate){   var localTime = utcdate.TolocalTime();}

问题是localTime将具有与utcdate完全相同的值.我假设这是因为utcdate不知道它有一个UTC值.所以我的问题是如何将utcdate(我知道是UTC)转换为本地?

解决方法 如果您知道DateTime包含UTC值,则可以使用 @L_404_0@:
DateTime iKNowThisIsUtc = whatever;DateTime runtimeKNowsThisIsUtc = DateTime.SpecifyKind(    iKNowThisIsUtc,DateTimeKind.Utc);DateTime localVersion = runtimeKNowsThisIsUtc.TolocalTime();

例如,在我当前的应用程序中,我使用sql的utcNow在数据库中创建时间戳,但是当我将它们读入到我的C#应用​​程序中时,该类型的始终始终是未知的.我创建了一个包装器函数来读取时间戳,故意将其设置为Utc,然后将其转换为本地时间 – 基本上如上.

请注意,如果以下(或两者)中的一个(或两者)成立,则DateTime.ToLocalTime()只会影响该值:

> DateTime’s Kind属性是DateTimeKind.Local
>您当地的时区是正确转换的“不变”

我想我们可以假设第二点是不正确的.因此,似乎iKNowThisIsUtc的亲属属性已设置为本地.你需要弄清楚为什么为什么提供这些DateTimes认为他们是本地的.

总结

以上是内存溢出为你收集整理的c# – 将UTC DateTime转换为本地DateTime全部内容,希望文章能够帮你解决c# – 将UTC DateTime转换为本地DateTime所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1237392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存