public DateTimeWithOlsenZoneToUtc ( System.DateTime dateTime, string olsenTimeZone ) : System.DateTime | ||
dateTime | System.DateTime | |
olsenTimeZone | string | |
return | System.DateTime |
public DateTime DateTimeWithOlsenZoneToUtc(DateTime dateTime, string olsenTimeZone)
{
var dateTimeZoneProvider = DateTimeZoneProviders.Tzdb;
var dateTimeZone = dateTimeZoneProvider[olsenTimeZone];
var startTime = dateTime;
var localDateTime = new LocalDateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute);
return dateTimeZone.AtLeniently(localDateTime).ToDateTimeUtc();
}
public void MapToTrickleOverTimeTimeZoneTestUTC() { var startTimeUtc = DateTime.UtcNow; const string timeZone = "UTC"; var mapper = new DateTimeUtcFromOlsenMapping(); var dateTimeUtc = mapper.DateTimeWithOlsenZoneToUtc(startTimeUtc, timeZone); Assert.That(dateTimeUtc.Date.Year, Is.EqualTo(startTimeUtc.Date.Year)); Assert.That(dateTimeUtc.Date.Month, Is.EqualTo(startTimeUtc.Date.Month)); Assert.That(dateTimeUtc.Date.Day, Is.EqualTo(startTimeUtc.Date.Day)); Assert.That(dateTimeUtc.Hour, Is.EqualTo(startTimeUtc.Hour)); Assert.That(dateTimeUtc.Minute, Is.EqualTo(startTimeUtc.Minute)); }