错误:Ticks必须介于DateTime.MinValue.Ticks和DateTime.MaxValue.Ticks之间

时间:2018-04-04 16:57:05

标签: c# .net api

我正在使用Noda Time(日期和时间Api)进行从UTC到提供的时区的日期转换。

下面是一个基于指定的noda时区id返回本地化DateTime对象的方法。

“utcDateTime”是要转换的DateTime,“timeZoneId”是时区的ID

    public static DateTime ConvertDateTimeFromUtc(DateTime utcDateTime, string timeZoneId)
    {
        utcDateTime = DateTime.SpecifyKind(utcDateTime, DateTimeKind.Utc);

        var timeZone = DateTimeZoneProviders.Tzdb[timeZoneId];
        var convertedDateTime = Instant.FromDateTimeUtc(utcDateTime)
              .InZone(timeZone)
              .ToDateTimeUnspecified();

        return convertedDateTime;
    }

我从一个集合中获取一个utc的日期并尝试将其转换为提供的时区但我收到此错误

  

Ticks必须介于DateTime.MinValue.Ticks和DateTime.MaxValue.Ticks之间。

DateUtility.ConvertDateTimeFromUtc(collection.Select(c => c.date).DefaultIfEmpty(DateTime.MinValue).First(), time_zone)

0 个答案:

没有答案