|
1
|
Index: lib/time.rb
|
|
2
|
===================================================================
|
|
3
|
--- lib/time.rb (revision 20011)
|
|
4
|
+++ lib/time.rb (working copy)
|
|
5
|
@@ -84,9 +84,9 @@
|
|
6
|
end
|
|
7
|
|
|
8
|
def zone_utc?(zone)
|
|
9
|
- # * +0000 means localtime. [RFC 2822]
|
|
10
|
+ # * -0000 means localtime. [RFC 2822]
|
|
11
|
# * GMT is a localtime abbreviation in Europe/London, etc.
|
|
12
|
- if /\A(?:-00:00|-0000|-00|UTC|Z|UT)\z/i =~ zone
|
|
13
|
+ if /\A(?:\+00:00|\+0000|\+00|UTC|Z|UT)\z/i =~ zone
|
|
14
|
true
|
|
15
|
else
|
|
16
|
false
|
|
17
|
@@ -409,7 +409,7 @@
|
|
18
|
#
|
|
19
|
# where zone is [+-]hhmm.
|
|
20
|
#
|
|
21
|
- # If +self+ is a UTC time, -0000 is used as zone.
|
|
22
|
+ # If +self+ is a UTC time, +0000 is used as zone.
|
|
23
|
#
|
|
24
|
def rfc2822
|
|
25
|
sprintf('%s, %02d %s %d %02d:%02d:%02d ',
|
|
26
|
@@ -417,7 +417,7 @@
|
|
27
|
day, RFC2822_MONTH_NAME[mon-1], year,
|
|
28
|
hour, min, sec) +
|
|
29
|
if utc?
|
|
30
|
- '-0000'
|
|
31
|
+ '+0000'
|
|
32
|
else
|
|
33
|
off = utc_offset
|
|
34
|
sign = off < 0 ? '-' : '+'
|
|
35
|
@@ -730,86 +730,86 @@
|
|
36
|
|
|
37
|
def test_zone_0000
|
|
38
|
assert_equal(true, Time.parse("2000-01-01T00:00:00Z").utc?)
|
|
39
|
- assert_equal(true, Time.parse("2000-01-01T00:00:00-00:00").utc?)
|
|
40
|
- assert_equal(false, Time.parse("2000-01-01T00:00:00+00:00").utc?)
|
|
41
|
+ assert_equal(true, Time.parse("2000-01-01T00:00:00+00:00").utc?)
|
|
42
|
+ assert_equal(false, Time.parse("2000-01-01T00:00:00-00:00").utc?)
|
|
43
|
assert_equal(false, Time.parse("Sat, 01 Jan 2000 00:00:00 GMT").utc?)
|
|
44
|
- assert_equal(true, Time.parse("Sat, 01 Jan 2000 00:00:00 -0000").utc?)
|
|
45
|
- assert_equal(false, Time.parse("Sat, 01 Jan 2000 00:00:00 +0000").utc?)
|
|
46
|
+ assert_equal(true, Time.parse("Sat, 01 Jan 2000 00:00:00 +0000").utc?)
|
|
47
|
+ assert_equal(false, Time.parse("Sat, 01 Jan 2000 00:00:00 -0000").utc?)
|
|
48
|
assert_equal(false, Time.rfc2822("Sat, 01 Jan 2000 00:00:00 GMT").utc?)
|
|
49
|
- assert_equal(true, Time.rfc2822("Sat, 01 Jan 2000 00:00:00 -0000").utc?)
|
|
50
|
- assert_equal(false, Time.rfc2822("Sat, 01 Jan 2000 00:00:00 +0000").utc?)
|
|
51
|
+ assert_equal(true, Time.rfc2822("Sat, 01 Jan 2000 00:00:00 +0000").utc?)
|
|
52
|
+ assert_equal(false, Time.rfc2822("Sat, 01 Jan 2000 00:00:00 -0000").utc?)
|
|
53
|
assert_equal(true, Time.rfc2822("Sat, 01 Jan 2000 00:00:00 UTC").utc?)
|
|
54
|
end
|
|
55
|
|
|
56
|
def test_parse_leap_second
|
|
57
|
t = Time.utc(1998,12,31,23,59,59)
|
|
58
|
assert_equal(t, Time.parse("Thu Dec 31 23:59:59 UTC 1998"))
|
|
59
|
- assert_equal(t, Time.parse("Fri Dec 31 23:59:59 -0000 1998"));t.localtime
|
|
60
|
+ assert_equal(t, Time.parse("Fri Dec 31 23:59:59 +0000 1998"));t.localtime
|
|
61
|
assert_equal(t, Time.parse("Fri Jan 1 08:59:59 +0900 1999"))
|
|
62
|
assert_equal(t, Time.parse("Fri Jan 1 00:59:59 +0100 1999"))
|
|
63
|
- assert_equal(t, Time.parse("Fri Dec 31 23:59:59 +0000 1998"))
|
|
64
|
+ assert_equal(t, Time.parse("Fri Dec 31 23:59:59 -0000 1998"))
|
|
65
|
assert_equal(t, Time.parse("Fri Dec 31 22:59:59 -0100 1998"));t.utc
|
|
66
|
t += 1
|
|
67
|
assert_equal(t, Time.parse("Thu Dec 31 23:59:60 UTC 1998"))
|
|
68
|
- assert_equal(t, Time.parse("Fri Dec 31 23:59:60 -0000 1998"));t.localtime
|
|
69
|
+ assert_equal(t, Time.parse("Fri Dec 31 23:59:60 +0000 1998"));t.localtime
|
|
70
|
assert_equal(t, Time.parse("Fri Jan 1 08:59:60 +0900 1999"))
|
|
71
|
assert_equal(t, Time.parse("Fri Jan 1 00:59:60 +0100 1999"))
|
|
72
|
- assert_equal(t, Time.parse("Fri Dec 31 23:59:60 +0000 1998"))
|
|
73
|
+ assert_equal(t, Time.parse("Fri Dec 31 23:59:60 -0000 1998"))
|
|
74
|
assert_equal(t, Time.parse("Fri Dec 31 22:59:60 -0100 1998"));t.utc
|
|
75
|
t += 1 if t.sec == 60
|
|
76
|
assert_equal(t, Time.parse("Thu Jan 1 00:00:00 UTC 1999"))
|
|
77
|
- assert_equal(t, Time.parse("Fri Jan 1 00:00:00 -0000 1999"));t.localtime
|
|
78
|
+ assert_equal(t, Time.parse("Fri Jan 1 00:00:00 +0000 1999"));t.localtime
|
|
79
|
assert_equal(t, Time.parse("Fri Jan 1 09:00:00 +0900 1999"))
|
|
80
|
assert_equal(t, Time.parse("Fri Jan 1 01:00:00 +0100 1999"))
|
|
81
|
- assert_equal(t, Time.parse("Fri Jan 1 00:00:00 +0000 1999"))
|
|
82
|
+ assert_equal(t, Time.parse("Fri Jan 1 00:00:00 -0000 1999"))
|
|
83
|
assert_equal(t, Time.parse("Fri Dec 31 23:00:00 -0100 1998"))
|
|
84
|
end
|
|
85
|
|
|
86
|
def test_rfc2822_leap_second
|
|
87
|
t = Time.utc(1998,12,31,23,59,59)
|
|
88
|
assert_equal(t, Time.rfc2822("Thu, 31 Dec 1998 23:59:59 UTC"))
|
|
89
|
- assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:59 -0000"));t.localtime
|
|
90
|
+ assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:59 +0000"));t.localtime
|
|
91
|
assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 08:59:59 +0900"))
|
|
92
|
assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 00:59:59 +0100"))
|
|
93
|
- assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:59 +0000"))
|
|
94
|
+ assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:59 -0000"))
|
|
95
|
assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 22:59:59 -0100"));t.utc
|
|
96
|
t += 1
|
|
97
|
assert_equal(t, Time.rfc2822("Thu, 31 Dec 1998 23:59:60 UTC"))
|
|
98
|
- assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:60 -0000"));t.localtime
|
|
99
|
+ assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:60 +0000"));t.localtime
|
|
100
|
assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 08:59:60 +0900"))
|
|
101
|
assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 00:59:60 +0100"))
|
|
102
|
- assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:60 +0000"))
|
|
103
|
+ assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:59:60 -0000"))
|
|
104
|
assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 22:59:60 -0100"));t.utc
|
|
105
|
t += 1 if t.sec == 60
|
|
106
|
assert_equal(t, Time.rfc2822("Thu, 1 Jan 1999 00:00:00 UTC"))
|
|
107
|
- assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 00:00:00 -0000"));t.localtime
|
|
108
|
+ assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 00:00:00 +0000"));t.localtime
|
|
109
|
assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 09:00:00 +0900"))
|
|
110
|
assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 01:00:00 +0100"))
|
|
111
|
- assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 00:00:00 +0000"))
|
|
112
|
+ assert_equal(t, Time.rfc2822("Fri, 1 Jan 1999 00:00:00 -0000"))
|
|
113
|
assert_equal(t, Time.rfc2822("Fri, 31 Dec 1998 23:00:00 -0100"))
|
|
114
|
end
|
|
115
|
|
|
116
|
def test_xmlschema_leap_second
|
|
117
|
t = Time.utc(1998,12,31,23,59,59)
|
|
118
|
assert_equal(t, Time.xmlschema("1998-12-31T23:59:59Z"))
|
|
119
|
- assert_equal(t, Time.xmlschema("1998-12-31T23:59:59-00:00"));t.localtime
|
|
120
|
+ assert_equal(t, Time.xmlschema("1998-12-31T23:59:59+00:00"));t.localtime
|
|
121
|
assert_equal(t, Time.xmlschema("1999-01-01T08:59:59+09:00"))
|
|
122
|
assert_equal(t, Time.xmlschema("1999-01-01T00:59:59+01:00"))
|
|
123
|
- assert_equal(t, Time.xmlschema("1998-12-31T23:59:59+00:00"))
|
|
124
|
+ assert_equal(t, Time.xmlschema("1998-12-31T23:59:59-00:00"))
|
|
125
|
assert_equal(t, Time.xmlschema("1998-12-31T22:59:59-01:00"));t.utc
|
|
126
|
t += 1
|
|
127
|
assert_equal(t, Time.xmlschema("1998-12-31T23:59:60Z"))
|
|
128
|
- assert_equal(t, Time.xmlschema("1998-12-31T23:59:60-00:00"));t.localtime
|
|
129
|
+ assert_equal(t, Time.xmlschema("1998-12-31T23:59:60+00:00"));t.localtime
|
|
130
|
assert_equal(t, Time.xmlschema("1999-01-01T08:59:60+09:00"))
|
|
131
|
assert_equal(t, Time.xmlschema("1999-01-01T00:59:60+01:00"))
|
|
132
|
- assert_equal(t, Time.xmlschema("1998-12-31T23:59:60+00:00"))
|
|
133
|
+ assert_equal(t, Time.xmlschema("1998-12-31T23:59:60-00:00"))
|
|
134
|
assert_equal(t, Time.xmlschema("1998-12-31T22:59:60-01:00"));t.utc
|
|
135
|
t += 1 if t.sec == 60
|
|
136
|
assert_equal(t, Time.xmlschema("1999-01-01T00:00:00Z"))
|
|
137
|
- assert_equal(t, Time.xmlschema("1999-01-01T00:00:00-00:00"));t.localtime
|
|
138
|
+ assert_equal(t, Time.xmlschema("1999-01-01T00:00:00+00:00"));t.localtime
|
|
139
|
assert_equal(t, Time.xmlschema("1999-01-01T09:00:00+09:00"))
|
|
140
|
assert_equal(t, Time.xmlschema("1999-01-01T01:00:00+01:00"))
|
|
141
|
- assert_equal(t, Time.xmlschema("1999-01-01T00:00:00+00:00"))
|
|
142
|
+ assert_equal(t, Time.xmlschema("1999-01-01T00:00:00-00:00"))
|
|
143
|
assert_equal(t, Time.xmlschema("1998-12-31T23:00:00-01:00"))
|
|
144
|
end
|
|
145
|
|