Единственной вещи, которой мне действительно не хватает в Time::Piece — это truncate, по типу того, что есть в DateTime. Сделал monkey patch, который добавляет этот функционал. Написал в wishlist, жду реакции…
#!/usr/bin/perl
use strict;
use warnings;
use Time::Piece;
local *Time::Piece::truncate;
*Time::Piece::truncate = sub {
package Time::Piece;
my ($time, $to) = @_;
my @t = (0, 0, 0, 1, 0);
return $time->_mktime([@t[0..$to-1], @$time[$to..c_isdst]], $time->[c_islocal]);
};
my $now = Time::Piece->gmtime;
my $midnight = $now->truncate(Time::Piece::c_mday);
print $midnight, "\n";

Исправил баг :)
ОтветитьУдалить