Changeset 1759

Show
Ignore:
Timestamp:
10/15/06 22:31:44
Author:
miyagawa
Message:

Publish::iCal: support timezone

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plagger/lib/Plagger/Plugin/Publish/iCal.pm

    r1734 r1759  
    4141 
    4242        my($dtstart, $dtend); 
     43        my %param; 
     44        if (!$date->time_zone->is_floating && $date->time_zone->name ne 'UTC') { 
     45            $param{TZID} = $date->time_zone->name; 
     46        } 
    4347        if ($date->hms eq '00:00:00') { 
    44             $dtstart = [ $date->strftime('%Y%m%d'), { VALUE => 'DATE' } ]; 
    45             $dtend   = [ $date->strftime('%Y%m%d'), { VALUE => 'DATE' } ]; 
     48            $dtstart = [ $date->strftime('%Y%m%d'), { %param, VALUE => 'DATE' } ]; 
     49            $dtend   = [ $date->strftime('%Y%m%d'), { %param, VALUE => 'DATE' } ]; 
    4650        } else { 
    47             $dtstart = $date->strftime('%Y%m%dT%H%M%S')
    48             $dtend   = $date->strftime('%Y%m%dT%H%M%S')
     51            $dtstart = [ iso8691_full($date), \%param ]
     52            $dtend   = [ iso8691_full($date), \%param ]
    4953        } 
    5054 
     
    7175} 
    7276 
     77sub iso8691_full { 
     78    my $date = shift; 
     79    my $iso  = $date->strftime('%Y%m%dT%H%M%S'); 
     80    $iso .= $date->time_zone->name eq 'UTC' ? 'Z' : ''; 
     81    $iso; 
     82} 
    7383 
    74841;