首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.9 -> 1.1的NodaTime突破性更改

.9 -> 1.1的NodaTime突破性更改
EN

Stack Overflow用户
提问于 2013-05-04 07:42:00
回答 1查看 110关注 0票数 1

是否有从.9到1.0和1.1的重大更改列表?

Version History从1.0版开始

例如..。原始代码(在.9上),现在哭(在1.1上)。

代码语言:javascript
复制
public static DateTime AdjustTo(this DateTime date, string timeZoneId)
{
    if (date == DateTime.MinValue)
        return date;
    DateTimeZone.SetProvider(new BclTimeZoneProvider());
    var zone = DateTimeZone.ForId(timeZoneId ?? "UTC");
    var dateTime = new ZonedDateTime(Instant.FromDateTimeUtc(date.ToUniversalTime()), zone);
    return dateTime.ToDateTimeUnspecified();
}

上面的代码有两个突破性的变化...DateTimeZone没有SetProvider或ForId方法。

此外,如果我做错了,我也会接受反馈。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 17:01:53

回答你的第一个问题:没有,我们只有1.0.0-beta1以后的版本历史。尽管事实证明,我们在1.0.0-beta2中删除了静态时区提供程序的概念,因此涵盖了它,尽管很简短:

对如何从ID:

  • IDateTimeZoneProvider (时区的SPI)获取代码进行了彻底的修改,将其重命名为IDateTimeZoneSource,并对针对调用者的内置源
  • 新接口IDateTimeZoneProvider进行了类似的重命名,并缓存假定的
  • 新类DateTimeZoneProviders,它具有访问内置提供程序的静态属性: TZDB,implementation
  • DateTimeZoneCache和default (目前支持总是通过IDateTimeZoneProvider

执行DateTimeZone的各种IDateTimeZoneProvider静态方法,现在是公共的并实现了BCL

与1.0版本的代码等效的代码是:

代码语言:javascript
复制
public static DateTime AdjustTo(this DateTime date, string timeZoneId)
{
    if (date == DateTime.MinValue)
        return date;
    var zone = DateTimeZoneProviders.Bcl[timeZoneId ?? "UTC"];
    var dateTime = new ZonedDateTime(Instant.FromDateTimeUtc(date.ToUniversalTime()), zone);
    return dateTime.ToDateTimeUnspecified();
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16369082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档