Project

General

Profile

Actions

Bug #13231

closed

DateTime.strftime("%Z") does not return time zone abbreviation, returns hour and minute offset from UTC with colon

Added by thornomad (Damon Timm) about 7 years ago. Updated over 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
[ruby-core:79602]

Description

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 -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").

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

Thanks for your time.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0