【问题标题】:Convert UTC DateTime to specific time zone xamarin forms pcl将 UTC DateTime 转换为特定时区 xamarin 表单 pcl
【发布时间】:2017-10-11 19:59:22
【问题描述】:

我正在开展一个项目,在该项目中我在服务响应中获取 UTC 日期时间。 我正在尝试将 UTC DateTime 转换为特定时区的 Datetime。我试过 System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId 但它在 xamarin 表单 pcl 中不可用。

是否有任何解决方案或解决方法来处理这种情况?

谢谢

【问题讨论】:

  • 那么您是否已经拥有要转换成的TimeZoneInfo?更多细节会有所帮助。
  • 从服务解析 json 后,我得到了 UTC DateTime。我正在尝试通过 TimeZoneInfo.ConvertTimeBySystemTimeZoneId 方法更改时区,但它丢失了。存在 TimeZoneInfo.Convert 方法。
  • 但是您要使用哪个时区?
  • 美国和加拿大、阿拉斯加、加沙等等。
  • 那么你有什么标识符呢?如果它们是 Windows 时区 ID,它们将无法在非 Windows 平台上运行。如果它们是 IANA 时区 ID(例如“欧洲/伦敦”),那么您也许可以使用 TimeZoneInfo.FindSystemTimeZoneById 让它们工作,但您可能还想使用我的 Noda Time 项目.

标签: c# xamarin xamarin.forms


【解决方案1】:

尝试这样使用ToLocalDateTime()

DateTime date = DateTime.Now;
var test = date.ToLocalDateTime();

【讨论】:

  • 不幸的是,这将使用本地时区,而不是选定的时区
  • 不是ToLocalTime()吗?
【解决方案2】:

试试下面的代码:

TimeZoneInfo.ConvertTime(date, TimeZoneInfo.Local);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2020-06-16
    • 2014-08-12
    • 2011-02-02
    • 2014-07-15
    • 2017-11-23
    • 2011-02-11
    相关资源
    最近更新 更多