Project

General

Profile

Actions

Bug #19292

closed

Time object's wday, yday, and isdst returns broken value (and so does to_a) when kwarg in: 'UTC' was given

Added by matsuda (Akira Matsuda) almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.3.0dev (2022-12-30T15:31:50Z master 0bb07e5ba4) +YJIT [arm64-darwin21]
[ruby-core:111557]

Description

$ ruby -e "p Time.new(2023, 1, 1, 0, 0, 0, in: 'UTC').wday"
7

$ ruby -e "p Time.new(2023, 1, 1, 0, 0, 0, in: 'UTC').yday"
0

$ ruby -e "p Time.new(2023, 1, 1, 0, 0, 0, in: 'UTC').isdst"
-e:1:in isdst': isdst is not set yet (RuntimeError) from -e:1:in '

$ ruby -e "p Time.new(2023, 1, 1, 0, 0, 0, in: 'UTC').to_a"
[0, 0, 0, 1, 1, 2023, 7, 0, true, "UTC"]

where the expected to_a value should be:
[0, 0, 0, 1, 1, 2023, 0, 1, false, "UTC"]

This bug seems to be happening on the following conditions:

  • On any given date and time, regardless of past or future
  • Either on Time.new(Integer, Integer, ...) style or Time.new(String) style
  • Only when in: 'UTC' kwarg was given. Other formats like in: '+0000' or in: 0 seems to be OK
  • On all Ruby versions that accept kwarg in: (3.1, 3.2, and 3.3)

Related issues 1 (0 open1 closed)

Has duplicate Ruby master - Bug #19295: Time#wday returns 7ClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0