Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
07ffe7a6
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
07ffe7a6
编写于
10月 20, 2016
作者:
D
denisovlev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix `ActiveSupport::TimeZone#strptime` cannot parse timestamps (%Q, %s)
上级
f2c6db41
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
40 addition
and
11 deletion
+40
-11
activesupport/CHANGELOG.md
activesupport/CHANGELOG.md
+7
-0
activesupport/lib/active_support/values/time_zone.rb
activesupport/lib/active_support/values/time_zone.rb
+15
-11
activesupport/test/time_zone_test.rb
activesupport/test/time_zone_test.rb
+18
-0
未找到文件。
activesupport/CHANGELOG.md
浏览文件 @
07ffe7a6
*
Fix
`ActiveSupport::TimeZone#strptime`
.
Support for timestamps in format of seconds (%s) and milliseconds (%Q).
Fixes #26840.
*Lev Denisov*
*
Fix
`DateAndTime::Calculations#copy_time_to`
. Copy
`nsec`
instead of
`usec`
.
Jumping forward or backward between weeks now preserves nanosecond digits.
...
...
activesupport/lib/active_support/values/time_zone.rb
浏览文件 @
07ffe7a6
...
...
@@ -450,17 +450,21 @@ def parts_to_time(parts, now)
raise
ArgumentError
,
"invalid date"
if
parts
.
nil?
return
if
parts
.
empty?
time
=
Time
.
new
(
parts
.
fetch
(
:year
,
now
.
year
),
parts
.
fetch
(
:mon
,
now
.
month
),
parts
.
fetch
(
:mday
,
parts
[
:year
]
||
parts
[
:mon
]
?
1
:
now
.
day
),
parts
.
fetch
(
:hour
,
0
),
parts
.
fetch
(
:min
,
0
),
parts
.
fetch
(
:sec
,
0
)
+
parts
.
fetch
(
:sec_fraction
,
0
),
parts
.
fetch
(
:offset
,
0
)
)
if
parts
[
:offset
]
if
parts
[
:seconds
]
time
=
Time
.
at
(
parts
[
:seconds
])
else
time
=
Time
.
new
(
parts
.
fetch
(
:year
,
now
.
year
),
parts
.
fetch
(
:mon
,
now
.
month
),
parts
.
fetch
(
:mday
,
parts
[
:year
]
||
parts
[
:mon
]
?
1
:
now
.
day
),
parts
.
fetch
(
:hour
,
0
),
parts
.
fetch
(
:min
,
0
),
parts
.
fetch
(
:sec
,
0
)
+
parts
.
fetch
(
:sec_fraction
,
0
),
parts
.
fetch
(
:offset
,
0
)
)
end
if
parts
[
:offset
]
||
parts
[
:seconds
]
TimeWithZone
.
new
(
time
.
utc
,
self
)
else
TimeWithZone
.
new
(
nil
,
self
,
time
)
...
...
activesupport/test/time_zone_test.rb
浏览文件 @
07ffe7a6
...
...
@@ -395,6 +395,24 @@ def test_strptime_with_malformed_string
end
end
def
test_strptime_with_timestamp_seconds
with_env_tz
"US/Eastern"
do
zone
=
ActiveSupport
::
TimeZone
[
"Eastern Time (US & Canada)"
]
time_str
=
"1470272280"
time
=
zone
.
strptime
(
time_str
,
"%s"
)
assert_equal
Time
.
at
(
1470272280
),
time
end
end
def
test_strptime_with_timestamp_milliseconds
with_env_tz
"US/Eastern"
do
zone
=
ActiveSupport
::
TimeZone
[
"Eastern Time (US & Canada)"
]
time_str
=
"1470272280000"
time
=
zone
.
strptime
(
time_str
,
"%Q"
)
assert_equal
Time
.
at
(
1470272280
),
time
end
end
def
test_utc_offset_lazy_loaded_from_tzinfo_when_not_passed_in_to_initialize
tzinfo
=
TZInfo
::
Timezone
.
get
(
"America/New_York"
)
zone
=
ActiveSupport
::
TimeZone
.
create
(
tzinfo
.
name
,
nil
,
tzinfo
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录