【发布时间】:2013-04-12 16:48:49
【问题描述】:
在我的系统中,使用旧的 IBM julian 格式返回时间戳。
例如:
12 点 0 分 1 秒 AM(午夜后 1 秒)返回 01。
12 点 22 分 15 秒 AM 返回 2215.
1 点 22 分 15 秒 AM 返回 12215。
7 点 45 分 1 秒 AM 返回 74501。
7点22分15秒PM返回192215。
我需要一个正则表达式将它们转换为以下格式:
12 点 0 分 1 秒 AM(午夜后 1 秒):00:00.01
12 点 22 分 15 秒 AM:00:22.15
凌晨 1 点 22 分 15 秒:01:22.15
上午 7 点 45 分 1 秒:7:45.01
7 点 22 分 15 秒 PM:19:22.15
感谢任何帮助。
解决方案 感谢 MikeM,这是解决方案:
//var time = '01';
//var time = '2215';
//var time = '12215';
//var time = '74501';
var time = '192215';
time = time.replace( /^(?:(?:(\d)?(\d))?(\d\d))?(\d\d)$/,
function ( all, hr1, hr2, min, sec ) {
return (hr1 || '0') + (hr2 || '0') + ':' + (min || '00') + '.' + sec;
}
);
【问题讨论】:
-
为什么我不赞成这个问题:meta.stackexchange.com/a/149138/133242
-
01:01:01如何返回?
-
仅使用正则表达式是不够的。现有资源可以轻松回答您的问题:google.ca/…
-
时间元素来自JDE ERP系统。它不是系统朱利安格式。在 JDE 的智慧 (???) 中,他们决定将所有日期转换为人类可读的数字并构建内部类来管理它们。例如,2013 年 4 月 12 日存储为 113102。1-->13
-
@AlexW 添加不起作用,因为它们不是自某个基本时间以来经过的秒数。我在答案中添加了一些关于传入格式的信息。
标签: javascript regex jdedwards