我有两个简单的格式:
2020-11-23t21:17:03.039023z
2020-11-23t21:17:03z
如何检查时间是否使用“yyy-mm-dd't'hh:mm:ss.sss'z”或“yyy-mm-dd't'hh:mm:ss'z”?
例子:
if ("2020-11-23T21:17:03.039023Z".contentEquals("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")) {
Log.e("TAG", "true");
} else {
Log.e("TAG", "false");
}
2条答案
按热度按时间dy1byipe1#
你可能想要
String#matches
这里有一个适当的正则表达式模式:但请注意,上述方法实际上并没有对输入进行任何验证,而只是检测一般模式,并与没有毫秒/微秒精度的版本进行区分。
w1e3prcc2#
您可以将日期时间字符串解析为
Instant
检查秒的分数是否大于0
.输出:
基于此,您可以将代码编写为
注意,api的日期时间
java.util
以及它们的格式化api,SimpleDateFormat
过时且容易出错。我建议您完全停止使用它们,转而使用现代的日期时间api。在trail:date-time了解有关现代日期时间api的更多信息。如果您正在为一个android项目工作,并且您的android api级别仍然不符合java-8,请检查通过desugaring提供的java8+api以及如何在android项目中使用threetenabp。