是否有从.9到1.0和1.1的重大变化列表?
Version History从版本1.0开始
例如...原始代码(在.9上),现在哭(在1.1上)。
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方法。
另外,如果我做错了,我也会接受这些反馈。
谢谢。
答案 0 :(得分:4)
回答您的第一个问题:不,我们只有1.0.0-beta1以后的版本历史记录。虽然事实证明,我们在1.0.0-beta2中删除了静态时区提供程序的概念,因此它被覆盖,尽管简要说明:
- 如何从ID中获取
DateTimeZone
的大修:
IDateTimeZoneProvider
(用于时区的SPI)重命名为IDateTimeZoneSource
,以及内置来源的类似重命名- 新界面
IDateTimeZoneProvider
针对呼叫者,假设缓存为- 具有静态属性的新类
DateTimeZoneProviders
,用于访问内置提供程序:TZDB,BCL和默认值(当前为TZDB)- 删除了各种
DateTimeZone
静态方法,支持始终通过IDateTimeZoneProvider
实现DateTimeZoneCache
现已公开并实施IDateTimeZoneProvider
等同于1.0的代码将是:
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();
}