perl - 在perl中将此时间格式“2019-02-28T08:42:57+0000”转换为YYYY-MM-DD格式
问题描述
我想在 perl 中将以下时间格式-“2019-02-28T08:42:57+0000”转换为 YYYY-MM-DD 格式
解决方案
在这种情况下,最简单的解决方案(正如 simbabque 已经指出的那样)是将日期视为字符串。除了substr()
您获得的解决方案外,您还可以使用正则表达式删除“T”及其后面的所有内容。
$date =~ s/T.*$//;
如果您真的想解析和重新格式化日期,那么Time::Piece自 2007 年以来就已包含在标准 Perl 发行版中。
use Time::Piece;
$date = '2019-02-28T08:42:57+0000';
my $tp = Time::Piece->strptime($date, '%Y-%m-%dT%H:%M:%S%z');
say $tp->strftime('%Y-%m-%d');
对于更复杂的日期和时间处理(此处不需要,但为了完整起见,我将其包括在内),您应该阅读DateTime及其朋友。
use DateTime;
use DateTime::Format::Strptime;
my $parser = DateTime::Format::Strptime->new(
pattern => '%Y-%m-%dT%H:%M:%S%z',
);
my $date = '2019-02-28T08:42:57+0000';
my $dt = $parser->parse_datetime($date);
say $dt->strftime('%Y/%m/%d');
推荐阅读
- javascript - 使用 localStorage 使用 JavaScript 列出待办事项
- c++11 - 与 C++ 的 ADO 连接
- reactjs - 为什么不对反应状态变量进行拆分工作?
- laravel - 方法 Modules\Auth\Http\Controllers\AuthController::username 不存在 Laravel 6
- c++ - 出现链接错误:找不到 -lsfml-graphics 的库。在 M1 Mac 上
- c++ - Clang 代码覆盖率没有正确覆盖 #ifdef 中的行
- javascript - date-fns subDays - 如何获取 12:17:35 的 00:00 时间
- python - Pandas:将变量聚合为单列的函数
- javascript - GLB 网格的多个实例
- reactjs - 材质 ui 卡在 Ctrl+单击时在新选项卡中打开