首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从TimeStamp到LogFile的转换

从TimeStamp到LogFile的转换
EN

Stack Overflow用户
提问于 2017-09-12 20:06:50
回答 1查看 374关注 0票数 0

我的LogFile:

代码语言:javascript
复制
created_at,entry_id,field1
2017-09-08 13:21:12 UTC,69,39.00
2017-09-08 14:20:03 UTC,70,42.00
2017-09-08 15:18:32 UTC,71,43.00
2017-09-08 16:16:59 UTC,72,44.00
2017-09-08 17:15:53 UTC,73,44.00

我想重写LogFile,将TimeStamp从UTC转换为GMT +2,并将,替换为Tabs

转换时间戳并用bash替换c的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-09-12 21:07:56

快速而肮脏的:

代码语言:javascript
复制
perl -MTime::Piece -F, -ane '
    if ($. > 1) {
        $t = Time::Piece->strptime($F[0], "%Y-%m-%d %T UTC"); 
        $F[0] = ($t + 7200)->strftime("%Y-%m-%d %T+02:00");
    }
    print join "\t", @F
' file

如果我想更有力地做到这一点,并使用Olson时区来处理夏时制,我将使用非核心模块并这样做:

代码语言:javascript
复制
perl -MDateTime::Format::Strptime -F, -sane '
  BEGIN {
    $fmt = "%F %T %Z";
    $p = DateTime::Format::Strptime->new(pattern => $fmt, time_zone => "UTC");
  }
  if ($. > 1) {
    $t = $p->parse_datetime($F[0]);
    $F[0] = $t->set_time_zone($dest_tz)->strftime($fmt);
  }                                                        
  print join "\t", @F
' -- -dest_tz="Europe/Paris" file
代码语言:javascript
复制
created_at  entry_id    field1
2017-09-08 15:21:12 CEST    69  39.00
2017-09-08 16:20:03 CEST    70  42.00
2017-09-08 17:18:32 CEST    71  43.00
2017-09-08 18:16:59 CEST    72  44.00
2017-09-08 19:15:53 CEST    73  44.00

调整您的目标时区以适应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46184565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档