<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -4,27 +4,29 @@ Object.extend(Date.prototype, {
    * Example:  new Date().strftime(&quot;%A %I:%M %p&quot;)
    */
   strftime: function(format) {
-    var day = this.getDay(), month = this.getMonth();
-    var hours = this.getHours(), minutes = this.getMinutes();
+    var day = this.getUTCDay(), month = this.getUTCMonth();
+    var hours = this.getUTCHours(), minutes = this.getUTCMinutes();
     function pad(num) { return num.toPaddedString(2); };
 
-    return format.gsub(/\%([aAbBcdHImMpSwyY])/, function(part) {
+    return format.gsub(/\%([aAbBcdDHiImMpSwyY])/, function(part) {
       switch(part[1]) {
         case 'a': return $w(&quot;Sun Mon Tue Wed Thu Fri Sat&quot;)[day]; break;
         case 'A': return $w(&quot;Sunday Monday Tuesday Wednesday Thursday Friday Saturday&quot;)[day]; break;
         case 'b': return $w(&quot;Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec&quot;)[month]; break;
         case 'B': return $w(&quot;January February March April May June July August September October November December&quot;)[month]; break;
         case 'c': return this.toString(); break;
-        case 'd': return pad(this.getDate()); break;
+        case 'd': return this.getUTCDate(); break;
+        case 'D': return pad(this.getUTCDate()); break;
         case 'H': return pad(hours); break;
-        case 'I': return pad((hours + 12) % 12); break;
+        case 'i': return (hours === 12 || hours === 0) ? 12 : (hours + 12) % 12; break;
+        case 'I': return pad((hours === 12 || hours === 0) ? 12 : (hours + 12) % 12); break;
         case 'm': return pad(month + 1); break;
         case 'M': return pad(minutes); break;
-        case 'p': return hours &gt; 12 ? 'PM' : 'AM'; break;
-        case 'S': return pad(this.getSeconds()); break;
+        case 'p': return hours &gt; 11 ? 'PM' : 'AM'; break;
+        case 'S': return pad(this.getUTCSeconds()); break;
         case 'w': return day; break;
-        case 'y': return pad(this.getFullYear() % 100); break;
-        case 'Y': return this.getFullYear().toString(); break;
+        case 'y': return pad(this.getUTCFullYear() % 100); break;
+        case 'Y': return this.getUTCFullYear().toString(); break;
       }
     }.bind(this));
   }</diff>
      <filename>datetime/format.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>04c7477505d3998b9ab0ebdbdd321407f2af940a</id>
    </parent>
  </parents>
  <author>
    <name>Justin Palmer</name>
    <email>justin@activereload.net</email>
  </author>
  <url>http://github.com/Caged/javascript-bits/commit/16af773a1316774b53805b7fc63b5e1eec34c35d</url>
  <id>16af773a1316774b53805b7fc63b5e1eec34c35d</id>
  <committed-date>2008-02-26T16:48:12-08:00</committed-date>
  <authored-date>2008-02-26T16:48:12-08:00</authored-date>
  <message>Fix some problems with 12:00 times.  Also convert some methods to utc instead</message>
  <tree>81a3f4eea4fb7a8ab8bec850530e20339ea6848d</tree>
  <committer>
    <name>Justin Palmer</name>
    <email>justin@activereload.net</email>
  </committer>
</commit>
