Version 1.1.9

Date 2019-03-24 (2,063 days ago)
Downloads 992 downloads
NuGet View on NuGet
GitHub View on GitHub
Target Frameworks .NET Standard 1.1 .NET Standard 1.3 .NET 4.5 .NET 4.6 .NET 4.7

#installation">Installation

#changelog">Changelog

  • Added time zone support to the EssentialsTime class
    With the help of TimeZoneInfo and DateTimeOffset, instances of EssentialsTime can now be based on a specific time zone in addition to a given offset. This helps date and time operations to work even between different time zones and also taking daylight savings into account. A lot of the underlying logic has also been updated to support this change.

  • Introduced the EssentialsDate class
    While the EssentialsTime class representing a specific date and time, the EssentialsDate class only represents the date, which may be beneficial in some date and time operations.

    As it only represents the date, and not the time, it's not based on any offset or time zone. It is however possible to specify a time zone for some of the methods of the class. According to Romance Standard Time, the 31st of March 2019 starts with an offset of a single hour to UTC (2019-03-31T00:00:00+01:00), but ends with an offset of two hours (2019-03-31T23:59:59+02:00) due to daylight savings:

    TimeZoneInfo cet = TimeZoneInfo.FindSystemTimeZoneById("Romance Standard Time");
    
    EssentialsDate march31 = new EssentialsDate(2019, 3, 31);
    
    <pre>@march31.GetStartOfDay(cet).Iso8601</pre>
    <pre>@march31.GetEndOfDay(cet).Iso8601</pre>
    
  • Introduced the EssentialsWeek class
    The new EssentialsWeek class represents an entire ISO 8601 week. It may be based on a specific TimeZoneInfo, in which case daylight savings is also taken into account for determining the start and end times of the week.

    This can be illustrated by the example below. Romance Standard Time switches to Romance Summer Time on the last Sunday of March, which in 2019 is week 13. This means that the start of week 13 is 2019-03-25T00:00:00+01:00, but the start of week 14 is 2019-04-01T00:00:00+02:00.

    TimeZoneInfo romance = TimeZoneInfo.FindSystemTimeZoneById("Romance Standard Time");
    
    EssentialsWeek week1 = new EssentialsWeek(2019, 13, romance);
    EssentialsWeek week2 = new EssentialsWeek(2019, 14, romance);
    
    <pre>@week1.Start.Iso8601</pre>
    <pre>@week2.Start.Iso8601</pre>