Re: [Orgmode] [PATCH] Add explicit time zone to datetime exported to ical.

2011-02-12 Thread Bastien
Hi Rémi,

Rémi Vanicat vani...@debian.org writes:

 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.

Applied, Thanks.  

I also made org-icalendar-date-time-format backward compatible, it
defaults to the right value if org-icalendar-use-UTC-date-time was
set to t.

-- 
 Bastien

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] [PATCH] Add explicit time zone to datetime exported to ical.

2010-12-22 Thread Rémi Vanicat
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)
-- 
1.7.2.3



___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode