Perl:从预格式化的日期时间字符串中获取周数
Perl: Getting weeknumbers from pre-formatted date-time strings
我收到格式为“2021-04-25 04:27:35”(YYYY-MM-DD hh:mm:ss) 的日期时间字符串,需要将它们转换为“2021w18”。
我必须得到周数,我的 perl 脚本中已经有以下内容。
use Time::Piece;
use POSIX qw(strftime);
任何帮助都会帮助我超越“新手”。
这里有一个子例程可以执行您想要的操作:
use Time::Piece;
use POSIX qw(strftime);
use strict;
use warnings;
use feature 'say';
sub dateToWeek {
my ($date) = @_;
my $t = Time::Piece->strptime($date, "%Y-%m-%d %H:%M:%S");
return $t->strftime("%Yw%U");
}
say dateToWeek("2021-04-25 04:27:35");
输出:
2021w17
向它传递一个包含在字符串中的日期,它将 return 年份 + “w” + 周数。
如果您需要它 return 2021w18 而不是 2021 年 4 月 25 日的 2021w17,请更改 return 语句以将 1 添加到 strftime,如下所示:
return $t->year . "w" . ($t->strftime("%U")+1);
我收到格式为“2021-04-25 04:27:35”(YYYY-MM-DD hh:mm:ss) 的日期时间字符串,需要将它们转换为“2021w18”。 我必须得到周数,我的 perl 脚本中已经有以下内容。
use Time::Piece;
use POSIX qw(strftime);
任何帮助都会帮助我超越“新手”。
这里有一个子例程可以执行您想要的操作:
use Time::Piece;
use POSIX qw(strftime);
use strict;
use warnings;
use feature 'say';
sub dateToWeek {
my ($date) = @_;
my $t = Time::Piece->strptime($date, "%Y-%m-%d %H:%M:%S");
return $t->strftime("%Yw%U");
}
say dateToWeek("2021-04-25 04:27:35");
输出:
2021w17
向它传递一个包含在字符串中的日期,它将 return 年份 + “w” + 周数。 如果您需要它 return 2021w18 而不是 2021 年 4 月 25 日的 2021w17,请更改 return 语句以将 1 添加到 strftime,如下所示:
return $t->year . "w" . ($t->strftime("%U")+1);