【问题标题】:Convert local time to UTC in .NET framework 3.0在 .NET Framework 3.0 中将本地时间转换为 UTC
【发布时间】:2011-06-07 19:45:05
【问题描述】:

我开发了一个应用程序。在 c# 中,我应该将本地时间转换为 UTC,本地时间是在我的应用程序中使用的时区。进入。我必须在 .NET framework 3.0 中使用,所以不能使用 TimeZoneInfo 对象。

有人有idia吗?

应该在 TimeZone 对象中使用?

谢谢

也许我做不到?

【问题讨论】:

标签: c# .net datetime timezone


【解决方案1】:

每次我在数据库中保存时间时,我总是以 UTC 时间保存

myEntity.CreateDate = DateTime.UtcNow;

现在,3.0 或更低版本

使用这个文件

http://pastebin.com/w20NRkuP

包含一个助手,因此您可以列出所有时区并拥有它们的值。将其添加到您的数据库或即时使用。

填写一个下拉菜单并要求用户选择它自己的时区,然后,只需将分钟添加到您保存的 UTC 日期。

例如:

<asp:DropDownList ID="myDropDown" runat="server" />

然后

myDropDown.DataSource = Helper.ListAllTimeZones();
myDropDown.DataValueField = "UtcOffsetMinutes";
myDropDown.DataTextField = "DisplayName";

myDropDown.DataBind();

保存用户偏好时:

User.OffSet = (int)myDropDown.SelectedValue;

希望对你有帮助


例如,sweetie.com 这样做:

只需向用户请求时区并以 UTC 时间保存所有内容,然后只需添加/减去时区。

【讨论】:

  • 但我在 FrameWork 3.0 中没有 TimeZoneInfo 对象
  • 愚弄我 :( 获取 3.0 中的时区列表:staceyw1.wordpress.com/2006/08/31/… 又大又笨,但这是唯一的方法,或者获取一次并使用此信息创建自己的对象。
  • 添加了一个类,这样使用起来会更方便。
【解决方案2】:

现在我看到了问题所在。请改用以下方法: TimeZone.ToUniversalTime

【讨论】:

  • 我知道,但是我如何在我的应用程序中知道用户输入的 TimeZone 的 UTC 偏移量是多少?以及如何考虑夏令时规则?
  • 这是自动为您完成的(假设您的应用是本地的,而不是网络的)。查看 MSDN 上的示例。
  • 对不起,我不明白,c#中的对象是自动完成的吗? MSDN 中的示例在哪里?
  • DateTime.ToUniversalTime 是指向 MSDN 文章的链接。页面底部有使用示例。
  • 最好将计算机所在时区的本地时间转换为 UTC,但在我的应用程序中,我从用户时区获取 - 它不是我的时区,日期在这个时区,我应该从这个时区转换为UTC。 DateTime.ToUniversalTime 仅帮助将计算机时区中的 dateTime 转换为 UTC。
猜你喜欢
  • 1970-01-01
  • 2018-07-27
  • 2020-01-11
  • 2012-08-03
  • 2011-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多