用户日期时间设置为 GMT,如何将日期转换为其本地化设置?
在我的用户设置中,我有一个下拉列表,其中包含所有 GMT 日期供用户选择。
在 C# 中,如何将数据库中存储的日期时间转换为 GMT 时间?
数据库中存储的时间为服务器时间。
In my users setting I have a dropdown with all the GMT dates for the user to select.
In c#, how would I convert a datetime stored in the database to their GMT time?
The time stored in the database is the servers time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于 .NET 3.5+,您可以将系统时区标识符与用户一起存储(您可以从 TimeZoneInfo.GetSystemTimeZones 获取这些标识符)并使用 TimeZoneInfo 在时区之间进行转换:
在 .NET 2.0 中,您只能使用旧的
TimeZone
类,该类仅适用于本地系统。您不会自动获取用户的夏令时信息,因此您必须自己将其与基本 GMT/UTC 偏移量一起存储。For .NET 3.5+, you can store the system time zone identifier with the user (you can get those from
TimeZoneInfo.GetSystemTimeZones
) and useTimeZoneInfo
to convert between time zones:In .NET 2.0, you're limited to the older
TimeZone
class which is only available for the local system. You don't automatically get daylight savings information for the user, so you'd have to store that yourself alongside the basic GMT/UTC offset.我认为您正在存储每个用户的 GMT 差异?即 0 或 +1 或 -6 等?
I take it you're storing the GMT difference for each user? I.e. 0 or +1 or -6, etc?
使用 System.DateTimeOffset 而不是 DateTime。 IT 包含您需要的所有功能。
Use System.DateTimeOffset instead of DateTime. IT includes all the functionality you need.