diff --git a/ChangeLog b/ChangeLog index 171be67d98..289949a5b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ Thu Sep 7 23:27:05 2006 Nobuyoshi Nakada * file.c (path_check_0, fpath_check): disable path check on cygwin. [ruby-talk:213074] +Thu Sep 7 02:03:45 2006 Yukihiro Matsumoto + + * time.c (time_to_s): adopt new date format using digits + e.g. "2006-09-07 02:03:45 +9000". + Thu Sep 7 01:54:22 2006 Yukihiro Matsumoto * string.c (sym_equal): override. check equivalence. diff --git a/time.c b/time.c index cb2ee465c4..c9be587c47 100644 --- a/time.c +++ b/time.c @@ -1198,30 +1198,32 @@ time_to_s(VALUE time) struct time_object *tobj; char buf[128]; int len; - time_t off; - char buf2[32]; - char sign = '+'; -#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) - VALUE tmp; -#endif GetTimeval(time, tobj); if (tobj->tm_got == 0) { time_get_tm(time, tobj->gmt); } -#if defined(HAVE_STRUCT_TM_TM_GMTOFF) - off = tobj->tm.tm_gmtoff; -#else - tmp = time_utc_offset(time); - off = NUM2INT(tmp); -#endif - if (off < 0) { - sign = '-'; - off = -off; + if (tobj->gmt == 1) { + len = strftime(buf, 128, "%Y-%m-%d %H:%M:%S UTC", &tobj->tm); + } + else { + time_t off; + char buf2[32]; + char sign = '+'; +#if defined(HAVE_STRUCT_TM_TM_GMTOFF) + off = tobj->tm.tm_gmtoff; +#else + VALUE tmp = time_utc_offset(time); + off = NUM2INT(tmp); +#endif + if (off < 0) { + sign = '-'; + off = -off; + } + sprintf(buf2, "%%Y-%%m-%%d %%H:%%M:%%S %c%02d%02d", + sign, (int)(off/3600), (int)(off%3600/60)); + len = strftime(buf, 128, buf2, &tobj->tm); } - sprintf(buf2, "%%a, %%b %%d %%Y %%H:%%M:%%S %c%02d%02d", - sign, (int)(off/3600), (int)(off%3600/60)); - len = strftime(buf, 128, buf2, &tobj->tm); return rb_str_new(buf, len); }