我有一个 .dat 文本文件,该文件是从计算机上基于 Web 的平台导出的,日期和时间格式设置为 m/d/yyyy HH:MM AM/PM。 (所以 1999 年 5 月 1 日上午 9 点是 5/1/1999 9:00 AM)
我需要这些日期采用英国格式,时间采用 24 小时格式 (dd/mm/yyyy hh:mm) - 例如 01/05/1999 09:00。
我正在使用记事本++进行编辑,可以使用以下命令查找和替换日期:
第 1 步(月份填充):
查找:,([0-9])/+([0-9]+)/+([0-9]+) 替换:,0 / /
第 2 步(日期填充):
查找:([0-9]+)/+([0-9])/+([0-9]+) 替换:/0/
第 3 步(美国转换):
查找:([0-9]+)/+([0-9]+)/+([0-9]+) 更换:/ /
有人可以帮我转换时间吗?
要将 PM 时间转换为 24 小时,您需要执行(算术)加法。
正则表达式是错误的工具。除非您愿意将“01 PM”替换为“13”,“02 PM”替换为“14”,“03 PM”替换为“15”,...等等,所有这些都需要单独的替换操作。
但是如果您只想通过几个操作来完成它,那么您需要一种脚本/编程语言。
例如,以下代码片段将一次性完成转换。运行此处的代码片段,将您的输入粘贴到左侧框中,单击“转换”按钮并在右侧框中找到结果。
const [input, output, button] = document.querySelectorAll("textarea, button");
button.onclick = () => output.value = input.value.replace(
/(\d+)\/(\d+)\/(\d{4}) (\d+):(\d+) ([AP])M/g,
(_, mo, d, y, h, mi, p) => `${d}/${mo}/${y} ${(h%12) + 12*(p > 'A')}:${mi}`
.replace(/\b\d\b/g, "0$&")
);
textarea { width: 50%; height: 98%; box-sizing: border-box; margin: 0}
body { height: 100vh; margin: 0 }
button { position: fixed; right: 50% }
<textarea>
5/1/1999 12:05 AM
12/31/2000 9:18 AM
2/28/2001 4:56 PM
4/9/2023 12:19 PM
5/24/2019 7:23 PM
</textarea><textarea readonly></textarea><button>Convert ► </button>