转换日期时间 +时区转换为 UTC

发布于 2024-11-18 20:06:57 字数 317 浏览 2 评论 0原文

给定 DateTime 对象,如何获取指定 TimeZone 的通用时间?我的应用程序(计时器)要求用户指定时间和时区,我需要根据指定的时间+时区值保存 UTC。

例如,用户 A 指定
日期时间:2011 年 7 月 6 日上午 7:30 时区:东部标准时间 (-5:00)。

用户 B 指定:
日期时间:2011 年 7 月 6 日下午 05:00 时区:印度标准时间 (+5:30)。

我相信上述两个 DateTime 值的 UTC 是相同的,并且上述两个计时器将同时发生。问题是如何将 UTC 保存在数据库中?我无法获得上述日期时间值的匹配 UTC。

How can I get universal time for a specified TimeZone, given a DateTime object? My application (a Timer) asks the user to specify a time and a timezone and I need to save the UTC based on the specified time+timezone values.

For example, user A specifies
DateTime: 07/06/2011 7:30 AM TimeZone: Eastern Standard Time (-5:00).

User B specifies:
DateTime: 07/06/2011 05:00 PM TimeZone: India Standard Time (+5:30).

I believe the UTC for both the above DateTime values will be the same and both of the above timers will occur at the same time. The problem is how do I get the UTC to save in the database? I am not able to get matching UTCs for the above datetime values.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最舍不得你 2024-11-25 20:06:57

您可以将 DateTimeTimeZoneInfo 结合使用:

var utc = TimeZoneInfo.ConvertTimeToUtc(dateTimeAsEnteredByUser,
                                        timeZoneChosenByUser);

您需要确保 dateTimeAsEnteredByUserKind 属性是设置为DateTimeKind.Unspecified

顺便说一句:
您指定的两次时间不相同。第一个是 12:30 UTC,第二个是 11:30 UTC。此外,17:00 PM 不存在,它要么是 17:00,要么是 5:00 PM。

You can use DateTime in combination with TimeZoneInfo:

var utc = TimeZoneInfo.ConvertTimeToUtc(dateTimeAsEnteredByUser,
                                        timeZoneChosenByUser);

You need to make sure, that the Kind property of dateTimeAsEnteredByUser is set to DateTimeKind.Unspecified.

BTW:
The two times you specified are not the same. The first is 12:30 UTC and the second one is 11:30 UTC. Additionally, 17:00 PM doesn't exist, it's either 17:00 or 5:00 PM.

锦欢 2024-11-25 20:06:57

转换为 UTC:

DateTime utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTime, timeZone);

Converting to Utc:

DateTime utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTime, timeZone);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文