emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Accepted] [Orgmode] Add explicit time zone to datetime exported to ical


From: Bastien Guerry
Subject: [Accepted] [Orgmode] Add explicit time zone to datetime exported to ical.
Date: Sat, 12 Feb 2011 21:15:22 +0100 (CET)

Patch 502 (http://patchwork.newartisans.com/patch/502/) is now "Accepted".

Maintainer comment: none

This relates to the following submission:

http://mid.gmane.org/%3C87lj3ixljr.dlv%40debian.org%3E

Here is the original message containing the patch:

> Content-Type: text/plain; charset="utf-8"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Subject: [Orgmode] Add explicit time zone to datetime exported to ical.
> Date: Wed, 22 Dec 2010 13:24:08 -0000
> From: =?utf-8?q?R=C3=A9mi_Vanicat_=3Cvanicat=40debian=2Eorg=3E?=
> X-Patchwork-Id: 502
> Message-Id: <address@hidden>
> To: address@hidden
> 
> When exporting to ical, using localtime  is incompatible with some
> software, using explicit universal time may failed with daylight
> saving time, so we need another possibility, that is localtime with
> explicit timezone.
> 
> ---
> lisp/org-icalendar.el |   30 +++++++++++++++++++++---------
>  1 files changed, 21 insertions(+), 9 deletions(-)
> 
> diff --git a/lisp/org-icalendar.el b/lisp/org-icalendar.el
> index d4034fe..1dfd3ed 100644
> --- a/lisp/org-icalendar.el
> +++ b/lisp/org-icalendar.el
> @@ -194,12 +194,25 @@ When nil of the empty string, use the abbreviation 
> retrieved from Emacs."
>         (const :tag "Unspecified" nil)
>         (string :tag "Time zone")))
>  
> -(defcustom org-icalendar-use-UTC-date-time ()
> -  "Non-nil force the use of the universal time for iCalendar DATE-TIME.
> -The iCalendar DATE-TIME can be expressed with local time or universal Time,
> -universal time could be more compatible with some external tools."
> +(defcustom org-icalendar-date-time-format ":%Y%m%dT%H%M%S"
> +  "format-string for exporting icalendar DATE-TIME.
> +See `format-time-string' for a full documentation. The only
> +difference is that `org-icalendar-timezone' is used for %Z
> +
> +Interesting value are:
> + - \":%Y%m%dT%H%M%S\" for local time
> + - \";TZID=%Z:%Y%m%dT%H%M%S\" for local time with explicit timezone
> + - \":%Y%m%dT%H%M%SZ\" for time expressed in Universal Time"
> +
>    :group 'org-export-icalendar
> -  :type 'boolean)
> +  :type '(choice
> +       (const :tag "Local time" ":%Y%m%dT%H%M%S")
> +       (const :tag "Explicit local time" ";TZID=%Z:%Y%m%dT%H%M%S")
> +       (const :tag "Universal time" ":%Y%m%dT%H%M%SZ")
> +       (string :tag "Explicit format")))
> +
> +(defun org-icalendar-use-UTC-date-timep () 
> +  (char-equal (elt org-icalendar-date-time-format (1- (length 
> org-icalendar-date-time-format))) ?Z))
>  
>  ;;; iCalendar export
>  
> @@ -641,12 +654,11 @@ a time), or the day by one (if it does not contain a 
> time)."
>               (setq h (+ 2 h)))
>           (setq d (1+ d))))
>       (setq time (encode-time s mi h d m y)))
> -      (setq fmt (if have-time (if org-icalendar-use-UTC-date-time 
> -                               ":%Y%m%dT%H%M%SZ"
> -                               ":%Y%m%dT%H%M%S")
> +      (setq fmt (if have-time 
> +                 (replace-regexp-in-string "%Z" org-icalendar-timezone 
> org-icalendar-date-time-format)
>                   ";VALUE=DATE:%Y%m%d"))
>        (concat keyword (format-time-string fmt time 
> -                                       (and org-icalendar-use-UTC-date-time 
> +                                       (and 
> (org-icalendar-use-UTC-date-timep)
>                                              have-time))))))
>  
>  (provide 'org-icalendar)
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]