Index: pyyaml/trunk/lib/yaml/representer.py
===================================================================
--- pyyaml/trunk/lib/yaml/representer.py	(revision 222)
+++ pyyaml/trunk/lib/yaml/representer.py	(revision 225)
@@ -6,9 +6,5 @@
 from nodes import *
 
-try:
-    import datetime
-    datetime_available = True
-except ImportError:
-    datetime_available = False
+import datetime
 
 try:
@@ -242,15 +238,9 @@
 
     def represent_date(self, data):
-        value = u'%04d-%02d-%02d' % (data.year, data.month, data.day)
+        value = unicode(data.isoformat())
         return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value)
 
     def represent_datetime(self, data):
-        value = u'%04d-%02d-%02d %02d:%02d:%02d' \
-                % (data.year, data.month, data.day,
-                    data.hour, data.minute, data.second)
-        if data.microsecond:
-            value += u'.' + unicode(data.microsecond/1000000.0).split(u'.')[1]
-        if data.utcoffset():
-            value += unicode(data.utcoffset())
+        value = unicode(data.isoformat(' '))
         return self.represent_scalar(u'tag:yaml.org,2002:timestamp', value)
 
@@ -298,9 +288,8 @@
         SafeRepresenter.represent_set)
 
-if datetime_available:
-    SafeRepresenter.add_representer(datetime.date,
-            SafeRepresenter.represent_date)
-    SafeRepresenter.add_representer(datetime.datetime,
-            SafeRepresenter.represent_datetime)
+SafeRepresenter.add_representer(datetime.date,
+        SafeRepresenter.represent_date)
+SafeRepresenter.add_representer(datetime.datetime,
+        SafeRepresenter.represent_datetime)
 
 SafeRepresenter.add_representer(None,
