public iDateTime(ContentLine contentline) { if (contentline.Parameters.ContainsKey("TZID")) ZonedDateTime = GetDateTimeOffsetWithTimeZone(contentline); else if (contentline.Parameters.ContainsKey("VALUE") && contentline.Parameters["VALUE"].Contains("DATE")) ZonedDateTime = GetDateTimeOffsetAsLocalTime(contentline); else if (Regex.IsMatch(contentline.Value, @".*Z$")) ZonedDateTime = GetDateTimeOffsetAsUtcTime(contentline); else ZonedDateTime = GetDateTimeOffsetAsLocalTime(contentline); }
public void TestContentLineWithTwoParameterValues() { string input = "DTSTART;PARA=VALUE1,VALUE2:20150325T113000"; ContentLine contentline = new ContentLine(input); Assert.IsTrue(contentline.Name.Equals("DTSTART")); Assert.IsTrue(contentline.Value.Equals("20150325T113000")); Assert.IsTrue(contentline.Parameters.Count == 1); Assert.IsTrue(contentline.Parameters.ContainsKey("PARA")); Assert.IsTrue(contentline.Parameters["PARA"].Count == 2); Assert.IsTrue(contentline.Parameters["PARA"].Contains("VALUE1")); Assert.IsTrue(contentline.Parameters["PARA"].Contains("VALUE2")); }
public void TestContentLine() { string input = "DTSTART;TZID=America/New_York;PARA=VALUE:20150325T113000"; ContentLine contentline = new ContentLine(input); Assert.IsTrue(contentline.Name.Equals("DTSTART")); Assert.IsTrue(contentline.Value.Equals("20150325T113000")); Assert.IsTrue(contentline.Parameters.Count == 2); Assert.IsTrue(contentline.Parameters.ContainsKey("TZID")); Assert.IsTrue(contentline.Parameters["TZID"].Count == 1); Assert.IsTrue(contentline.Parameters["TZID"].Contains("America/New_York")); Assert.IsTrue(contentline.Parameters.ContainsKey("PARA")); Assert.IsTrue(contentline.Parameters["PARA"].Count == 1); Assert.IsTrue(contentline.Parameters["PARA"].Contains("VALUE")); }
public string GetContentLineValueOrDefault(string name) { ContentLine contentline = ContentLines.FirstOrDefault(x => x.Name.Equals(name)); return(contentline != null?contentline.GetFormattedValue() : ""); }
private static ZonedDateTime GetDateTimeOffsetAsUtcTime(ContentLine contentline) { DateTime dateTime = GetDateTime(contentline.Value); DateTimeZone dateTimeZone = DateTimeZoneProviders.Tzdb["UTC"]; return new ZonedDateTime(LocalDateTime.FromDateTime(dateTime), dateTimeZone, dateTimeZone.GetUtcOffset(Instant.FromDateTimeOffset(new DateTimeOffset(dateTime, new TimeSpan())))); }
private static ZonedDateTime GetDateTimeOffsetWithTimeZone(ContentLine contentline) { DateTime dateTime = GetDateTime(contentline.Value); DateTimeZone dateTimeZone = TzidDecider.GetBestMatch(contentline.Parameters["TZID"].First()); return new ZonedDateTime(LocalDateTime.FromDateTime(dateTime), dateTimeZone, dateTimeZone.GetUtcOffset(Instant.FromDateTimeOffset(new DateTimeOffset(dateTime, new TimeSpan())))); }