From: "tadf (tadayoshi funaba)" Date: 2013-09-05T07:38:19+09:00 Subject: [ruby-core:57027] [ruby-trunk - Bug #7445] strptime('%s %z') doesn't work Issue #7445 has been updated by tadf (tadayoshi funaba). ��������������������������������������������������������������������������������� ��������������� DateTime ������������������������������������������������������ ��������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������ more(1) ������������ >SEE ALSO > vi(1), less(1) more ��� less ������������? ������������������������ ������������������������������������������������������������������������������ '%s %z' ��������������� ��������������������������������������������������������������������������������������������������������� ������������������������������������������������_strptime ������������������������������������������ ��������� C ��������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������ruby ������������������������ Time ��������������������������������������������������� lcoaltime(3) ������������ > struct tm { > int tm_sec; /* seconds */ > int tm_min; /* minutes */ > int tm_hour; /* hours */ > int tm_mday; /* day of the month */ > int tm_mon; /* month */ > int tm_year; /* year */ > int tm_wday; /* day of the week */ > int tm_yday; /* day in the year */ > int tm_isdst; /* daylight saving time */ > }; DateTime ������������������������������������������ Time ������C ��������������������������������� ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������ %s ��� time_t ������������������������������struct tm ������������������������������������������ ��������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������mktime(3) ��������������� ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������� #define _XOPEN_SOURCE #include #include int main(int argc, char *argv[]) { struct tm tm; char buf[100]; strptime(argv[1], argv[2], &tm); strftime(buf, 100, "%F %T %z", &tm); printf("%s\n", buf); return 0; } $ ./a.out '3 +0100' '%s %z' 1970-01-01 09:00:03 +0100 $ ./a.out '3 -0100' '%s %z' 1970-01-01 09:00:03 -0100 ������������������������������������������������������������������������ $ date -d '1970-01-01 09:00:03 +0100' +%s 28803 $ date -d '1970-01-01 09:00:03 -0100' +%s 36003 ��������������������������������������������������������������������������������������������������� DateTime ��� Time ������������������������������������������������������mktime(3) ������������ ������������������������������������������������������������������������������������������ DateTime��� Time ������������������������������������������������ struct tm ��������������������������������� ������������������������������������ C ���������������������������������DateTime ������������������ ������������������������������������������������������������������������������������������������������ > Time.strptime('1 +1200', '%s %z') #=> 1970-01-01 09:00:01 +0900 > Time.strptime('1 +2400', '%s %z') #=> 1970-01-01 09:00:01 +0900 ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������� > Time.strptime('1 0', '%s %w').wday #=> 4 > Time.strptime('1 PM', '%s %p').hour #=> 9 > DateTime.new(2001,2,3,16,5,6).strftime('%F %T %p') #=> "2001-02-03 16:05:06 PM" > DateTime.strptime('%F %T %p', "2001-02-03 16:05:06 PM") ArgumentError: invalid date ������ '%s %z' ��������������������������������������������������������������������������������������� ������������������������������������������������������������������������%s ��������������������������� time_t ������time_t ���������������������������������������������������������������Unix ��������� ��������������������������������������������������������������������������������������������������������� ��������������������������������������������� ���������������ISO 8601 ������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������� ���������������������������������������������������������������������������������������������'%s %z' ������������������������������������������������'%s %p' ��������������������������������������������� ������������������������������������������������������������������ ������������������������������������������ '%s %z' ��������������������������������������������������� ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������� ���������������time_t ������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������ruby ��������������������������� ��������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������ ��������������������������������������������� ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������� ��������������������� ������������������������������������������������������������������������������������������������������������ ��������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������ ��������������������������������������������������������� ---------------------------------------- Bug #7445: strptime('%s %z') doesn't work https://bugs.ruby-lang.org/issues/7445#change-41622 Author: felipec (Felipe Contreras) Status: Rejected Priority: Low Assignee: tadf (tadayoshi funaba) Category: lib Target version: Next Major ruby -v: ruby 1.9.3p327 Backport: See: ruby -e "require 'date'; p DateTime.strptime('0 +0100', '%s %z').strftime('%s %z')" The timezone is ignored. -- http://bugs.ruby-lang.org/