From: "phasis68 (Heesob Park)" Date: 2012-07-11T11:28:14+09:00 Subject: [ruby-core:46317] [ruby-trunk - Feature #6720][Open] Discrepancy between DateTime#strftime('%s') and Time#strftime('%s') before 1582-10-15 Issue #6720 has been reported by phasis68 (Heesob Park). ---------------------------------------- Feature #6720: Discrepancy between DateTime#strftime('%s') and Time#strftime('%s') before 1582-10-15 https://bugs.ruby-lang.org/issues/6720 Author: phasis68 (Heesob Park) Status: Open Priority: Normal Assignee: Category: ext Target version: 2.0.0 I found some discrepancy between DateTime#strftime('%s') and Time#strftime('%s') on date before 1582-10-15 Consider this C:\>irb irb(main):001:0> require 'date' => true irb(main):002:0> Time.at(DateTime.new(0).strftime('%s').to_i) => -0001-12-30 09:00:00 +0900 irb(main):003:0> Time.at(DateTime.new(1000).strftime('%s').to_i) => 1000-01-06 09:00:00 +0900 irb(main):004:0> Time.at(DateTime.new(1500).strftime('%s').to_i) => 1500-01-10 09:00:00 +0900 irb(main):005:0> Time.at(DateTime.new(1582).strftime('%s').to_i) => 1582-01-11 09:00:00 +0900 irb(main):006:0> Time.at(DateTime.new(1582,10,4).strftime('%s').to_i) => 1582-10-14 09:00:00 +0900 irb(main):007:0> Time.at(DateTime.new(1582,10,5).strftime('%s').to_i) ArgumentError: invalid date from (irb):44:in `new' from (irb):44 from c:/usr/bin/irb.bat:19:in `
' irb(main):008:0> Time.at(DateTime.new(1582,10,15).strftime('%s').to_i) => 1582-10-15 09:00:00 +0900 irb(main):050:0> Time.at(DateTime.new.strftime('%s').to_i) => -4713-11-24 09:00:00 +0900 irb(main):009:0> Time.at(DateTime.new(1583).strftime('%s').to_i) => 1583-01-01 09:00:00 +0900 irb(main):051:0> DateTime.new => # I understand the dates between 1582-10-05 and 1582-10-14 are invalid. But I cannot understand why the discrepancy changes for each year. Is the discrepancy inevitable and should not use DateTime#strftime('%s') before 1582-10-15? I think DateTime#strftime('%s') should return same result with Time#strftime('%s') always. -- http://bugs.ruby-lang.org/