将 12 小时日期/时间转换为 24 小时日期/时间

2023-11-22

我有一个制表符分隔文件,其中每条记录都有一个 12 小时格式的时间戳字段:

月/日/年 时:分:秒 [AM|PM]。

我需要快速将这些字段转换为 24 小时时间:

月/日/年 HH:mm:ss。

最好的方法是什么?我在 Windows 平台上运行,但除了常用的 Windows 工具之外,我还可以访问 sed、awk、perl、python 和 tcl。


使用 Perl 和手工制作的正则表达式代替 strptime 等工具:

#!/bin/perl -w
while (<>)
{
    # for date times that don't use leading zeroes, use this regex instead:
    # (?:\d{1,2}/\d{1,2}/\d{4} )(\d{1,2})(?::\d\d:\d\d) (AM|PM)
    while (m%(?:\d\d/\d\d/\d{4} )(\d\d)(?::\d\d:\d\d) (AM|PM)%)
    {
        my $hh = $1;
        $hh -= 12 if ($2 eq 'AM' && $hh == 12);
        $hh += 12 if ($2 eq 'PM' && $hh != 12);
        $hh = sprintf "%02d", $hh;
        # for date times that don't use leading zeroes, use this regex instead:
        # (\d{1,2}/\d{1,2}/\d{4} )(\d{1,2})(:\d\d:\d\d) (?:AM|PM)
        s%(\d\d/\d\d/\d{4} )(\d\d)(:\d\d:\d\d) (?:AM|PM)%$1$hh$3%;
    }
    print;
}

这非常繁琐 - 但每行也可能转换多个时间戳。

请注意,AM/PM 到 24 小时制的转换并非易事。

  • 上午 12:01 --> 00:01
  • 下午 12:01 --> 12:01
  • 上午 01:30 --> 01:30
  • 下午 01:30 --> 13:30

现在测试:

perl ampm-24hr.pl <<!
12/24/2005 12:01:00 AM
09/22/1999 12:00:00 PM
12/12/2005 01:15:00 PM
01/01/2009 01:56:45 AM
12/30/2009 10:00:00 PM
12/30/2009 10:00:00 AM
!

12/24/2005 00:01:00
09/22/1999 12:00:00
12/12/2005 13:15:00
01/01/2009 01:56:45
12/30/2009 22:00:00
12/30/2009 10:00:00

Added:

In JavaScript 中 AM/PM 时间和 24 小时时间之间转换的简单方法是什么,提供了另一种转换算法:

$hh = ($1 % 12) + (($2 eq 'AM') ? 0 : 12);

只需一项测试...可能更整洁。

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

将 12 小时日期/时间转换为 24 小时日期/时间 的相关文章

  • 获取本周星期一和星期五的日期 (PHP)

    如何获取本周周一和周五的日期 我有以下代码 但如果当天是星期日或星期六 则会失败 current day date N days to friday 5 current day days from monday current day 1
  • VBA 从文本文件的属性获取日期

    我正在尝试获取特定文本文件上传到计算机的日期 该日期不在实际的文本文件中 您必须右键单击然后转到属性才能查看日期 我需要将日期读入变量 我不知道从哪里开始尝试完成这件事 谢谢你 杰西 斯莫瑟蒙 如果内置FileDateTime 不是你可以使
  • Ruby Time.parse 给我超出范围的错误

    我正在使用 Time parse 从字符串创建 Time 对象 因为某些原因 Time parse 05 14 2009 19 00 导致参数超出范围错误 而 Time parse 05 07 2009 19 00 does not 有任何
  • 将 pandas 多索引折叠为单个索引

    我有一个多索引的 Pandas 数据框 如下所示 如何将三层索引合并为一层索引 也就是说 我想将 1987 1 2 转换为 pd datetime 1987 1 2 我更喜欢使用 df index map 的矢量化方法 以下是可以创建数据框
  • 在 Python 中比较日期 - 如何处理时区修饰符

    我正在做Python日期比较 假设我有一个这样的约会 Fri Aug 17 12 34 00 2012 0000 我按以下方式解析它 dt datetime strptime Fri Aug 17 12 34 00 2012 0000 a
  • 代表 PostgreSQL 中的未来时间

    我习惯于将过去的日期作为 UTC 存储在数据库中 因为那实际上是事件发生的时间 对于未来的日期 我会将其与特定时区一起存储 以避免诸如闰秒或时区规则更改之类的更改 Postgres 有timestamp with timezone 但在幕后
  • 我如何使用 F() 对象通过 Django ORM 来执行此操作?

    我遇到过这样的模型 class Task models Model timespan models IntegerField null True blank True class Todo models Model limitdate mo
  • HQL 中的日期比较(不带时间戳)

    我必须比较 hibernate hql 查询中的两个日期 我在 java bean 中使用 java util Date 并在 mysql 数据库中使用时间戳作为数据类型 select t from Task t where t modif
  • PHP 字符串转日期时间(AM/PM)

    可以将格式为 A H i m d y 的字符串转换为 php 中的日期时间吗 示例字符串 AM 05 28 07 08 13 这不起作用 date DateTime createFromFormat A H i m d y AM 05 28
  • HighCharts 在 xAxis 上显示日期时间格式

    我试图在高图表的 x 轴上以日 周 月格式显示日期时间 我将数据格式化为 x utc 日期时间格式和 y 幅度 我的印象是我只需要这样做就可以了 Highcharts chart container title text Chart wit
  • Python-将月份名称转换为整数

    如何使用日期时间将 Jan 转换为整数 当我尝试 strptime 时 出现错误time data Jan does not match format m 您有一个缩写的月份名称 因此请使用 b gt gt gt from datetime
  • 为什么我无法访问 PHP DateTime 类中的 DateTime->date?

    使用DateTime类 如果我尝试运行以下代码 mydate new DateTime echo mydate gt date 我会回复此错误消息 注意 未定义的属性 DateTime date 这没有意义 因为跑步时var dump 在变
  • 如何检查 DST(夏令时)是否有效,如果有效,则偏移量?

    这是我需要的 JS 代码 var secDiff Math abs Math round utc date this premiere date 1000 this years this calculateUnit secDiff 8640
  • std::get_time 未解析日期

    如果我尝试将这一天设置为tm with std get time什么也没发生 但是输入流处于失败状态 这意味着发生了解析错误 下面的代码有什么问题 setting time works std tm t std istringstream
  • 如何使用 php $row 检索 sql 日期时间对象?

    例如 sql SELECT FROM db query sqlsrv query conn sql while row sqlsrv fetch array query echo row date column 会崩溃 我找到的大多数答案都
  • utcoffset 方法在日期时间中做什么 - Python

    我知道这个问题的答案通常是 去Python 的文档 https docs python org 3 library datetime html highlight utcoffset datetime datetime utcoffset
  • java.time DateTimeFormatter 解析具有灵活的后备值

    我正在尝试将一些代码从 joda 时间移植到 java 时间 JodaTime 可以像这样指定年份的后备值 parser withDefaultYear new DateTime DateTimeZone UTC getYear parse
  • 给定日期时间列的熊猫按周分组

    假设我有以下数据样本 df pd DataFrame date 2011 01 01 2011 01 02 2011 01 03 2011 01 04 2011 01 05 2011 01 06 2011 01 07 2011 01 08
  • 在 SQL Server 中处理日期

    我正在开发一个 ASP NET 网站 我从网页获取日期 然后根据用户输入我想从 SQL Server 数据库获取结果 使用存储过程 问题是我只能从用户界面获取这种格式的日期2016 10 08这是字符串类型 但在数据库中 我有一个类型为da
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这

随机推荐

  • 求大 n 和 k 模 m 的二项式系数

    我想计算 nCk mod m 具有以下约束 n k m 10 9 7 我读过这篇文章 但这里 m 的值为 1009 因此 使用卢卡斯定理 我们只需要计算 1009 1009 个不同的 aCb 值 其中 a b 如何在上述限制下做到这一点 我
  • Ext JS 点击事件

    我有以下事件 Ext onReady function Ext select gallery item img on click function e Ext select gallery item removeClass gallery
  • 引擎“节点”与此模块不兼容。预期版本“12.x”。得到“14.8.0”

    我尝试做一个yarn add 但我有这个错误 The engine node is incompatible with this module Expected version 12 x Got 14 8 0 运行这些命令 sudo npm
  • 处于调试视图,程序终止后,切换回 Eclipse 中的 Java 视图

    我正在寻找一种在我正在调试的应用程序结束后返回到 Eclipse 中的标准 Java 视图的方法 有可能做到这一点吗 这是其他一些 IDE 例如 Visual Studio 中的默认行为 我更愿意这样做 必须再次手动将视图切换到初始视图 这
  • 在 OSX 上安装 Typesafe 激活器

    我正在尝试安装类型安全激活器 scala AKKA play 框架 激活器 我有优胜美地 OSX 我的 bash 是 Oh my ZSH 我已经安装并导出了 JDK 1 7 我下载并解压了文件 typesafe activator 1 2
  • 多维数组上的 json_encode() - 使用字符串键

    我正在使用 PHP 创建一个非常大的多维数组 每个对象包含名称 ID ParentID 和 Children Children 是具有相同格式的更多对象的数组 命名每个对象的 ID 至关重要 这有助于我将每个对象置于正确的父对象下 在下面的
  • Matlab 的 Demcmap 的 Python 等效项(海拔 +/- 适当的颜色图)

    我正在寻找一种方法来获得适当的海拔颜色图matplotlib 的cmap terrain 看起来很棒 但颜色缩放不是基于零 即 如果比例为 0 gt 5000m 则 0 gt 1000m 范围可能是蓝色阴影 您会认为这是海平面以下的情况 f
  • 如何使表格单元格的背景透明

    我正在为我的 所有用户 页面创建一个表 第一个表分为两部分 广告和用户 在 用户 表内 tr td td tr 我为每个用户的数据创建了另一个表以通过 php 显示 这是图片 http postimg org image 3mbeyb411
  • c中的“short int”和“short”有什么区别? [复制]

    这个问题在这里已经有答案了 将变量声明为short int 和short 有什么区别 在gcc编译器中 short占用2个字节 用sizeof short 检查 并且short int也给出了2个字节的大小 两者是否相同或不同 在这种情况下
  • 如何在 JavaScript 中获取 HTML 元素的样式值?

    我正在寻找一种方法 从通过样式标签设置样式的元素中检索样式 在身体里 div div 我正在寻找不使用库的直接 JavaScript 我尝试了以下操作 但一直收到空白 alert document getElementById box st
  • 如何从子例程中不返回任何内容?

    我想在执行下一步之前验证一个条件 但只发出警告并跳过当前值而不是死掉 如何重写 validate me 子例程而不返回任何值 Update 请注意 以下代码按预期工作 只是我想要其他东西 而不是从 validate me 返回 1 或 0
  • 保存图像,然后在 Swift (iOS) 中加载它

    我正在使用 saveImage 保存图像 func saveImage image UIImage path String gt Bool let pngImageData UIImagePNGRepresentation image le
  • d3.js 构建矩形网格

    我正在尝试在 d3 js 中构建一个矩形网格 网格有 7 行 一周中的几天 和 24 列 一天中的小时 以下代码仅绘制 行 列 天0 小时0 第 1 天 1 小时 第 2 天 第 2 小时 第 3 天 第 3 小时 第 4 天 第 4 小时
  • R 分组显示所有因子水平的计数,即使 dplyr 为零

    set seed 1 dat lt data frame ID sample letters 50 rep TRUE dat gt group by ID gt summarise no rows length ID 我有上面的代码 它创建
  • 了解 Java 内存模型和垃圾收集 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我经常会收到很多学生或寻找
  • 从 GCE VM 分离启动磁盘

    我正在尝试从 GCE 虚拟机分离启动磁盘 由于虚拟机已停止 因此它应该允许我将其分离 但它返回此错误 UNSUPPORTED OPERATION Hot remove of the root disk is not supported 有什
  • 如何只加载最后一个分区的数据

    我有一些数据是这样分区的 data year 2016 month 9 version 0 data year 2016 month 10 version 0 data year 2016 month 10 version 1 data y
  • 以编程方式实例化 Sharepoint 中的 Web 部件页面

    是否有一种简单的方法可以使用对象模型或 Web 服务以编程方式将 Web 部件页面添加到 Sharepoint 站点 以这种方式创建列表和添加 Web 部件似乎很简单 但我找不到如何创建内容页面的示例 编辑 对于普通的 WSS 安装 不是
  • Java 中的加权线性回归

    有谁知道 Java 中的科学 数学库可以直接实现加权线性回归吗 类似于接受 3 个参数并返回相应系数的函数 linearRegression x y weights 这看起来相当简单 所以我想它存在于某个地方 PS 我尝试过弗兰尼根的图书馆
  • 将 12 小时日期/时间转换为 24 小时日期/时间

    我有一个制表符分隔文件 其中每条记录都有一个 12 小时格式的时间戳字段 月 日 年 时 分 秒 AM PM 我需要快速将这些字段转换为 24 小时时间 月 日 年 HH mm ss 最好的方法是什么 我在 Windows 平台上运行 但除