Issue #13231 has been updated by naruse (Yui NARUSE).

Assignee deleted (tadf (tadayoshi funaba))

DateTime wrongly calls timezone offset as "timezone".
It is considered as a documentation issue at this time.

----------------------------------------
Bug #13231: DateTime.strftime("%Z") does not return time zone abbreviation, returns hour and minute offset from UTC with colon
https://bugs.ruby-lang.org/issues/13231#change-63969

* Author: thornomad (Damon Timm)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
First time here; hope I capture everything.

It appears to me that either the documentation is incorrect or the expected functionality with `DateTime.strftime("%Z")`.  

From: http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html#method-i-strftime

>Time zone:
>    %z - Time zone as hour and minute offset from UTC (e.g. +0900)
>            %:z - hour and minute offset from UTC with a colon (e.g. +09:00)
>            %::z - hour, minute and second offset from UTC (e.g. +09:00:00)
>            %:::z - hour, minute and second offset from UTC
>                                              (e.g. +09, +09:30, +09:30:30)
>    %Z - Time zone abbreviation name or something similar information.

However, the last one on the list `%Z` appears to replicate `%:z`.

See output of each below (last one is unexpected):

~~~ ruby
~ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
~ irb
irb(main):001:0> require 'date'
=> true
irb(main):002:0> DateTime.now.strftime("%z")
=> "-0800"
irb(main):003:0> DateTime.now.strftime("%:z")
=> "-08:00"
irb(main):004:0> DateTime.now.strftime("%::z")
=> "-08:00:00"
irb(main):005:0> DateTime.now.strftime("%:::z")
=> "-08"
irb(main):006:0> DateTime.now.strftime("%Z")
=> "-08:00"
~~~

For me the expected behavior, based on the documentation, is the behavior shown by `Time.strftime("%Z")`.

~~~ ruby
irb(main):008:0> Time.now.strftime("%Z")
=> "PST"
~~~

Thanks for your time.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>