GAWK:strftime() 的逆 - 使用格式模式将日期字符串转换为自纪元时间戳以来的秒数

2023-11-22

Gnu AWK 提供内置函数

strftime()

它可以转换时间戳1359210984 into Sat 26. Jan 15:36:24 CET 2013。 我找不到可以执行此操作的函数:

seconds = timefromdate("Sat 26. Jan 15:36:24 CET 2013", "%a %d. %b %H:%M:%S CET %Y")

or

seconds = timefromdate("2013-01-26 15:36:24", "%Y-%m-%d %H:%M:%S")

Whereas seconds那么就是1359210984.

因此,日期字符串应该可以通过格式模式进行转换。

我只想在 gawk 中执行此操作。

Edit 1:

我想仅在 gawk 中转换日期以进一步处理流。

Edit 2:

我已经澄清了我的问题。 “会这样做”的代码示例有点草率。


您正在寻找的函数称为mktime()。您应该使用gensub()函数将日期规范操作为可以读取的格式mktime().


要格式化您给出的第二个示例,请考虑:

BEGIN {
    t = "2013-01-26 15:36:24"
    f = "\\1 \\2 \\3 \\4 \\5 \\6"

    s = mktime(gensub(/(....)-(..)-(..) (..):(..):(..)/, f, "", t))

    print s
}

我的机器上的结果:

1359178584

要格式化您给出的第一个示例,请考虑:

BEGIN {
    t = "Sat 26. Jan 15:36:24 CET 2013"

    gsub(/\.|:/, FS, t)
    split(t,a)

    Y = a[8]
    M = convert(a[3])
    D = a[2]

    h = a[4]
    m = a[5]
    s = a[6]

    x = mktime(sprintf("%d %d %d %d %d %d", Y, M, D, h, m, s))

    print x
}

function convert(month) {

    return(((index("JanFebMarAprMayJunJulAugSepOctNovDec", month) - 1) / 3) + 1)
}

我的机器上的结果:

1359178584

欲了解更多信息,请咨询manual, 具体来说时间函数 and 字符串函数. HTH.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GAWK:strftime() 的逆 - 使用格式模式将日期字符串转换为自纪元时间戳以来的秒数 的相关文章

随机推荐

  • 使用 stringstream 浮动的字符串

    我在网上找到了这段代码作为模板 用于进行字符串到 float int double 转换 它只是在这里 所以我有一些可以参考的问题 我想让用户输入一个数字作为字符串 将其转换为浮点数 测试它是否成功 如果输入是 Q 则退出 或者如果不是 Q
  • 创建扩展方法来生成打开和关闭标签,例如 Html.BeginForm()

    我想知道是否可以创建一个具有与 Html BeginForm 类似的功能和行为的扩展方法 因为它会生成一个完整的 Html 标记 并且我可以在其中指定其内容 tags 例如 我可以有这样的视图 此功能在我尝试使用示例中生成的功能的上下文中非
  • 使用动态键在 Typescript 中动态创建对象,无需将类型扩展为 { [key: string]: T }

    动态对象键 无需扩展至 key string V 我正在尝试创建一个 Typescript 函数来生成一个具有动态键的对象 其名称在函数签名中提供 而返回类型不会扩展为 key string V 所以我想打电话 createObject t
  • 检测文件是否在批处理文件中打开

    假设我有一个用于执行长时间构建的批处理文件 最后它会创建一个 EXE 如果我忘记在开始构建之前关闭应用程序 则链接阶段会在无法重新创建 EXE 时失败 我想检查 EXE 是否在以下位置打开start构建的 我尝试将 EXE 文件重命名为自身
  • Python 与 Ruby 相比的限制:lambda

    我浏览了 WikiVS 的一些页面 我引用了这些页面 因为 Python 中的 lambda 仅限于表达式 不能 包含语句 我想知道这个限制的一个很好的例子 或更多 最好与 Ruby 语言相比 感谢您的回答 评论和反馈 我不认为你真的在问
  • 如何让 github 页面提供像 RFC5785 的 /.well-known/ 这样的点文件?

    我有一个从我的文档项目的 Github master 分支填充的文档网站 我想要https mydomain well known security txt提供以下文件tree master well known security txt
  • 在Java中设置图标图像

    我一直在到处搜索如何在 Java 中设置图标图像 但它总是以不起作用或给我错误 在这里 在我的主要方法中放置代码 public static void main String args Game game new Game This rig
  • 不使用互操作/非托管代码监控打印后台打印

    背景 我正在使用 NET 4 0 用 C 编写一个应用程序 它按一定顺序打印一堆文档 这些文档具有不同的类型 并且实际上是使用 ShellExecute 和 print 动词打印的 为了确保顺序不会混乱 我想检查相关打印机的打印队列 我的主
  • 使用 javascript 设置 maxlength

    我正在尝试使用 JavaScript 动态设置输入字段的最大长度 显然这是 IE 的问题 我找到了部分解决方案 input title get 0 setAttribute max length 25 input title get 0 s
  • 查找 .NET 解决方案中未使用的资源

    如何在 resx 文件中查找可能已成为 孤立 且不再需要的未使用的图标 图像 字符串 最近ResXManager 1 0 0 41添加了一项功能来显示对字符串资源的引用数量
  • LINQ、Where() 与 FindAll()

    有人可以解释 LINQ 函数Where 和FindAll 有何不同吗 他们俩似乎都在做同样的事情 FindAll 是一个函数List
  • htons 中的混乱 - 小端/大端

    当我通过套接字从一个进程向另一个进程发送一个整型变量 然后在接收端打印该值时 在不使用ntohl htonl的情况下该值仍然相同 那么除了初始化套接字结构之外 我还需要在哪里使用这些函数 我理解小 大端 但是 当值保持不变时 为什么我们需要
  • 使用前向和后向正则表达式时出错

    我在使用以下正则表达式时遇到问题 它在 regexr 和 rubular 中运行良好 但在 node js 上运行时出现错误 我对使用正则表达式相当陌生 我不确定我做错了什么 如果我关掉它就会起作用 lt 所以我认为这就是问题所在 我正在尝
  • 照亮\广播\广播异常 无消息

    我在用着由 beyondcode 编写的 Laravel websocket 几天后 我已经连接到myDomain com laravel websockets第一步解决了 但现在 当我触发event laravel此时出现错误 publi
  • 如何前瞻性地使用Pandas的rolling_*函数

    假设我有一个时间序列 In 138 rng pd date range 1 10 2011 periods 10 freq D In 139 ts pd Series randn len rng index rng In 140 Out 1
  • 清除情节提要中使用的标签文本

    想知道是否有人知道如何完成以下 In a Storyboard我用虚拟文本设置标签 它们不是静态文本 例如 User1 用户名 我想知道是否有一个设置可以在视图加载该标签时清除该标签的值 我还有一些其他代码可以运行并收集相关信息 但是 可能
  • 检查 TypeScript 中的枚举中是否存在值

    我收到一个号码type 3并且必须检查它是否存在于该枚举中 export const MESSAGE TYPE INFO 1 SUCCESS 2 WARNING 3 ERROR 4 我发现的最好方法是将所有枚举值作为数组获取并在其上使用in
  • 函数式编程——for 和 while 循环

    我正在尝试写for and whilePython 中的循环 函数式编程风格 I think for构造很好 但是while不起作用 它无限运行 for loop lst 1 2 3 def fun e return e print map
  • 为什么 Seq.iter 和 Seq.map 慢这么多?

    考虑 F 中的以下代码 let n 10000000 let arr Array init n fun gt 0 let rec buildList n acc i if i n then acc else buildList n 0 ac
  • GAWK:strftime() 的逆 - 使用格式模式将日期字符串转换为自纪元时间戳以来的秒数

    Gnu AWK 提供内置函数 strftime 它可以转换时间戳1359210984 into Sat 26 Jan 15 36 24 CET 2013 我找不到可以执行此操作的函数 seconds timefromdate Sat 26