iCal.Netを使用して.icsドキュメントを生成しています。なぜiCal.Netは無効な時間を生成していますか?
Event calendarEvent = new Event
{
IsAllDay = false,
Summary = "summary",
Description = "summary",
DtStart = new CalDateTime(TimeZoneInfo.ConvertTimeFromUtc(start,TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")), "America/New_York"),
DtEnd = new CalDateTime(TimeZoneInfo.ConvertTimeFromUtc(end, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")), "America/New_York")
};
var calendar = new Calendar();
calendar.AddTimeZone(new VTimeZone("America/New_York"));
calendar.Events.Add(calendarEvent);
var serializer = new CalendarSerializer(new SerializationContext());
return serializer.SerializeToString(calendar);
通常、結果の開始日と終了日は次のようになり:
DTEND;TZID=America/New_York:20170106T132000
DTSTAMP:20170104T005548Z
DTSTART;TZID=America/New_York:20170106T130000
しかし、彼らは時折、このように生成されます。特に
DTEND;TZID=America/New_York:20180105T002000
DTSTAMP:20170105T191635Z
DTSTART;TZID=America/New_York;VALUE=DATE:20180105
、VALUE=DATE:20180105
次に気づきますDTSTART
。何らかの理由で、これにより、ほとんどのカレンダーアプリケーションがイベントを終日イベントとして読み取るようになります(上記のように、そうではないと明示的に言っています)。
何が起こっているのですか?
EDIT:
開始日は、第二のために2017年6月1日、最初例えば午後1時、および2018年5月1日、12AMです。私はそれが第二日時に、時間はどうやらデフォルト値
さて、これらのケースでは 'start'の値は何ですか? –
申し訳ありません、この情報を問題の声明に追加しました –