Определить событие на весь день из Outlook 2010

Я пытаюсь определить, является ли мое событие событием на весь день в моем файле ICS, экспортированном из Outlook 2010.

Я скопировал и вставил свой файл, который содержит 2 события ВСЕХ дней... Буду признателен за любые мысли.

BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20110809T033932Z
DESCRIPTION:This will be my description for meeting with Justin\n
DTEND;VALUE=DATE:20110809
DTSTAMP:20110809T040222Z
DTSTART;VALUE=DATE:20110808
LAST-MODIFIED:20110809T034001Z
LOCATION:At Starbucks
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Meet with Justin
TRANSP:TRANSPARENT
UID:040000008200E00074C5B7101A82E00800000000403EC9560B56CC01000000000000000
    010000000C69C80C5784EBC418582D51931DC82EA
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
    N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
    rsion 08.01.0240.003">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
    rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
    ri">This will be my description for meeting with Justin</FONT></SPAN><SPAN
     LANG="en-us"></SPAN></P>\n\n</BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
END:VEVENT
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20110809T040132Z
DESCRIPTION:ALL DAY DESCRIPTION\n
DTEND;VALUE=DATE:20110810
DTSTAMP:20110809T040222Z
DTSTART;VALUE=DATE:20110809
LAST-MODIFIED:20110809T040159Z
LOCATION:ALL DAY LOCATION
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:ALL DAY EVENT TITLE
TRANSP:TRANSPARENT
UID:040000008200E00074C5B7101A82E0080000000080148F680E56CC01000000000000000
    01000000088619AAED47E4F43A2AC4420C15E7309
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
    N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
    rsion 08.01.0240.003">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
    rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
    ri">ALL DAY DESCRIPTION</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>\n\n</B
    ODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
END:VEVENT

person Justin    schedule 09.08.2011    source источник


Ответы (2)


В общем, если НЕ указано время.... если это DTSTART;VALUE=DATE:20110808, это весь день, но DTSTART также может быть:

DTSTART:19980118T073000Z DTSTART;ЗНАЧЕНИЕ=ДАТА-ВРЕМЯ:19980101T050000Z DTSTART;TZID=Австралия/Сидней:20080801T183000

У него может быть ПРОДОЛЖИТЕЛЬНОСТЬ, а НЕ КОНЕЦ (НЕ ДОЛЖНО иметь оба)

Если у него есть дата окончания, а дата окончания - полночь (начало дня), а DTSTART - также полночь (предыдущий или более ранний день), ТОГДА концептуально это также весь день в этом часовом поясе (хотя два неполных дня в других часовых поясах).

К сожалению, это должно было быть представлено как ЗНАЧЕНИЕ=ДАТА, а не ЗНАЧЕНИЕ=ДАТА-ВРЕМЯ. но что поделаешь, приходится разбираться с тем, что всплывает в файлах.

Продолжительность, если в ней есть что-то после P, перед T и ничего после T, то это тоже allday.

P1D не: PT15M

DTSTART: http://tools.ietf.org/html/rfc5545#section-3.8. .2.4

Продолжительность: http://tools.ietf.org/html/rfc5545#section-3.8. .2.5

person anmari    schedule 09.08.2011

См. предыдущее обсуждение этой темы. Как правило, DTSTART — это дата (без времени), а DTEND — следующая дата (без времени), поэтому это событие длится весь день.

person Mark S.    schedule 09.08.2011