- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找 yyyymmddhhmmss 格式的 Java 正则表达式模式。它还应检查闰年。
下面是只检查 yyyymmdd 和闰年的模式,但现在我需要将它扩展到 yyyymmddhhmmss(以便它包括 24 小时时间格式验证)。
public static boolean isValidFormat(String format) {
String pattern = "(?:(?:(?:(?:(?:[13579][26]|[2468][048])00)|(?:[0-9]{2}(?:(?:[13579][26])|(?:[2468][048]|0[48]))))(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:0[1-9]|1[0-9]|2[0-9]))))|(?:[0-9]{4}(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:[01][0-9]|2[0-8])))))$";
boolean matches = Pattern.matches(pattern, format);
return matches;
}
谢谢。
最佳答案
这是一种验证日期时间值的非正则表达式方法。
import java.text.*;
...
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
sdf.setLenient(false);
try {
Date dt2 = sdf.parse("20150229105950");
System.out.println(dt2);
}
catch (Exception exc) {
System.out.println("NOT VALID");
}
参见 IDEONE demo
为了使用正则表达式也验证 24 小时制,您需要将其附加到它:
(?:0[0-9]|1[0-9]|2[0-3])(?:[0-5][0-9]){2}
(?:0[0-9]|1[0-9]|2[0-3])
部分将验证从 00
到 23
和 (?:[0-5][0-9]){2}
将验证分钟和秒。
然后,您的正则表达式将如下所示:
(?:(?:(?:(?:(?:[13579][26]|[2468][048])00)|(?:[0-9]{2}(?:(?:[13579][26])|(?:[2468][048]|0[48]))))(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:0[1-9]|1[0-9]|2[0-9]))))|(?:[0-9]{4}(?:(?:(?:09|04|06|11)(?:0[1-9]|1[0-9]|2[0-9]|30))|(?:(?:01|03|05|07|08|10|12)(?:0[1-9]|1[0-9]|2[0-9]|3[01]))|(?:02(?:[01][0-9]|2[0-8])))))(?:0[0-9]|1[0-9]|2[0-3])(?:[0-5][0-9]){2}
参见 demo
请注意,您正在使用 matches()
方法强制匹配整个 字符串,因此似乎不需要 $
anchor .
关于yyyymmddhhmmss 的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31132861/
我需要使用最少数量的字节/字符来打包带有 UTC 日期时间的字符串。我只需要精确到第二个。使用 .NET 4.0,压缩它的最节省空间的方法是什么?蜱似乎并不那么小。 所有的想法都表示赞赏。 谢谢。 编
作为标题激增,我需要格式化 now () 函数以显示格式“YYYYMMDDHHMMSS” 我确实尝试过将其拆分,但这会降低我需要保留的前导零 mydt 下面的例子是“27/02/2015 13:02:
我想知道如何解决以下格式的日期字符串: date = os.date() -- 11/29/18 09:14:04 进入YYYYMMDDHHMMSS的格式,所以在这个例子中,我想返回 20181129
我收到的输入为某些日期/时间(以小时为单位)(整数),例如:2 小时我想将此输入时间添加到 yyyyMMddHHmmss 格式的系统日期中。我该怎么做? 最佳答案 你可以这样做(假设你的意思是格式而不
我正在寻找 yyyymmddhhmmss 格式的 Java 正则表达式模式。它还应检查闰年。 下面是只检查 yyyymmdd 和闰年的模式,但现在我需要将它扩展到 yyyymmddhhmmss(以便它
我需要按以下格式计算两个时间戳之间的时间差: yyyyMMddHHmmss 例如我有 var lastExecution = 20150116165100; //--- 16:51:00 16/01/
我已经编写了以下查询以从实体创建 xml,我需要在 .NET 中以 yyyymmddhhmmss 格式为字段 SLOTTINGTIME 获取日期时间,所以我有想到编写一种新方法来获取所需格式的日期时间
我需要解析一个日期,如以下 20140101120000,即 yyyyMMddhhmmss 到 yyyy-MM-dd hh:mm:ss 的 H2 时间戳格式,我似乎无法弄清楚如何让它工作。这就是我正在
我正在尝试使用这种格式 yyyyMMddHHmmss 格式化当前时间。 t := time.Now() fmt.Println(t.Format("yyyyMMddHHmmss")) 即输出: yyy
我认识到已经有很多关于将字符串转换为日期时间的问题,但我还没有找到任何用于转换像20120225143620这样包含秒的字符串的内容。 我试图执行一个干净的转换,而不需要对每个段进行子串并用 / 和
我想将 C# 日期时间转换为“YYYYMMDDHHMMSS”格式。但是我没有找到获取这种格式的内置方法?有什么意见吗? 最佳答案 DateTime.Now.ToString("yyyyMMddHHmm
我有一个 PHP API,需要时间格式为 YYYYMMWDDHHMMSS。这里 W 是工作日(星期日 = 0,星期一 = 1 ...)。我正在尝试生成如下所示: package main import
我需要将文件从一个位置复制到另一个位置,同时通过添加日期和时间戳重命名文件 YYYYMMDDHHmmSS在此格式中仅使用 shell 。 我的 Bash shell 代码: cd $1 f1=Sup_
我有包含以下格式的日期和时间的数据集: datetime<- c(20210830102055, 20210830102312, 20210830102335) cycle <- c(25, 30,
编辑:我已经编辑了我的问题以包含更多信息,我已经尝试了很多方法来做到这一点,在 StackOverflow 上提问通常是我的最后手段。非常感谢任何帮助。 我有一个格式为 YYYYMMDDHHMMSS
这是我的 pandas 数据框中的数据。我想将 dateTime 列转换为 datetime64 这样我就可以检查是否存在重复的 fileName 然后找到具有最新 dateTime 的文件 如您所见
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm"); java.util.Date parsedDate = sdf.parse("
这是合法的吗?给定格式为 YYYYMMDDHHMMSS 的字符串,我试图尽快到达 time_t。 static time_t ConvertToSecSince1970(char *szYYYYMMD
我有一个带有日期的字符串,格式如下:YYYYMMDDHHMMSS。我想知道如何使用 JavaScript 将其转换为 JavaScript Date 对象。 提前致谢! 最佳答案 用一种古怪的方式来做
我有一组 YYYYMMDDHHMMSS 格式的日期/时间字符串,我想将其转换为 date 实用程序可读的内容。通常,我可以这样做: date -d "2010-10-01 12:34:56" 但是,d
我是一名优秀的程序员,十分优秀!