将所有传入的日期(可能是公制/公制/本地特定)和时间存储为UTC格式,并将其检索为公制/公制/本地特定格式

本文关键字:公制 格式 UTC 存储 定格 检索 时间 日期 | 更新日期: 2023-09-27 18:04:32

我们需要一个函数,它将得到执行,并将所有日期时间转换为通用时间格式,同时存储到DB(我们也可能有用户区域设置作为输入),同时从DB检索回来传递用户区域设置并将UTC转换为特定于区域设置的日期时间戳。

我正在使用c#.net?

请给我最好的引导,因为我是c#新手。

将所有传入的日期(可能是公制/公制/本地特定)和时间存储为UTC格式,并将其检索为公制/公制/本地特定格式

说了上面的话,相信这是一个重复,我仍然强烈建议你了解你面临的是什么。

DateTime,数据库不能很好地混合在一起。你可以在数据库中放入一个DateTime对象,但在时间不是精确表示的意义上,它们是可以的。

我强烈建议你看一下这个视频,它在10分钟内解决了这个问题。

这也是为什么乔恩·斯基特写了他的野田时间,因为我们人类对时间有一种非常变化无常的感觉,如果这还不够,宇宙和它的定律有一种更有趣的感觉(这导致我们不断改变和弯曲时间,以我们想要的方式工作)。

看看这些片段,如何扩展和利用这个示例

取决于你自己。
//Get local Date
DateTime lD = DateTime.Now; // or DateTime.Today;
//Get utc date
DateTime utcD = DateTime.UtcNow;

//To Convert utc to local
//Using your OS default regional settings/time zone
DateTime fromUtcToLocal = utcD.ToLocalTime();
//To specific region/time zone of your choice
var tzi = TimeZoneInfo.FindSystemTimeZoneById("SE Asia Standard Time");
var choosenLocalTime = TimeZoneInfo.ConvertTimeFromUtc(utcD, tzi);

Some时区id

Dateline Standard Time
UTC-11
Samoa Standard Time
Hawaiian Standard Time
Alaskan Standard Time
Pacific Standard Time (Mexico)
Pacific Standard Time
US Mountain Standard Time
Mountain Standard Time (Mexico)
Mountain Standard Time
Central America Standard Time
Central Standard Time
Central Standard Time (Mexico)
Canada Central Standard Time
SA Pacific Standard Time
Eastern Standard Time
US Eastern Standard Time
Venezuela Standard Time
Paraguay Standard Time
Atlantic Standard Time
Central Brazilian Standard Time
SA Western Standard Time
Pacific SA Standard Time
Newfoundland Standard Time
E. South America Standard Time
Argentina Standard Time
SA Eastern Standard Time
Greenland Standard Time
Montevideo Standard Time
UTC-02
Mid-Atlantic Standard Time
Azores Standard Time
Cape Verde Standard Time
Morocco Standard Time
UTC
GMT Standard Time
Greenwich Standard Time
W. Europe Standard Time
Central Europe Standard Time
Romance Standard Time
Central European Standard Time
W. Central Africa Standard Time
Namibia Standard Time
Jordan Standard Time
GTB Standard Time
Middle East Standard Time
Egypt Standard Time
Syria Standard Time
South Africa Standard Time
FLE Standard Time
Israel Standard Time
E. Europe Standard Time
Arabic Standard Time
Arab Standard Time
Russian Standard Time
E. Africa Standard Time
Iran Standard Time
Arabian Standard Time
Azerbaijan Standard Time
Mauritius Standard Time
Georgian Standard Time
Caucasus Standard Time
Afghanistan Standard Time
Ekaterinburg Standard Time
Pakistan Standard Time
West Asia Standard Time
India Standard Time
Sri Lanka Standard Time
Nepal Standard Time
Central Asia Standard Time
Bangladesh Standard Time
N. Central Asia Standard Time
Myanmar Standard Time
SE Asia Standard Time
North Asia Standard Time
China Standard Time
North Asia East Standard Time
Singapore Standard Time
W. Australia Standard Time
Taipei Standard Time
Ulaanbaatar Standard Time
Tokyo Standard Time
Korea Standard Time
Yakutsk Standard Time
Cen. Australia Standard Time
AUS Central Standard Time
E. Australia Standard Time
AUS Eastern Standard Time
West Pacific Standard Time
Tasmania Standard Time
Vladivostok Standard Time
Central Pacific Standard Time
New Zealand Standard Time
UTC+12
Fiji Standard Time
Kamchatka Standard Time
Tonga Standard Time