java如何在GWT中检查正则表达式的时间戳?
以下时间戳格式的正则表达式是什么
YYYY-MM-DD HH:mm:ss.S
YYYY-MM-DD HH:mm:ss.S AM/PM
YYYY-MM-DD HH:mm:ss.S AM/PM Z
YYYY-MM-DD HH:mm:ss.S Z
在哪里
Y: year,
M: Month,
D: Date,
H: hour,
m: minute,
s: second,
S: Milisecond 3 digit only,
Z: Time zone.
我正在获取字符串格式的时间戳格式,因此希望验证它
如何在GWT中检查上述正则表达式
# 1 楼答案
我会说使用Datejs
否则,您将需要进行大量编码,而regex并不是验证时间戳和时间戳是否有效的最佳工具。 Datejs将检查日期有效性,从中您将收到一个日期对象或null(如果它无效!)
有关更多信息,请参阅:
# 2 楼答案
简单地说,只描述如下模式:
任何用正则表达式进行的实际日期验证的尝试听起来都是错误的
我的大写字母Z是RFC822时区,正则表达式需要更改以符合TZDs或通用文本时区
# 3 楼答案
除了通过js检查日期字符串的
Datejs
之外,Gwt还提供了DateTimeFormat来解析日期字符串和格式化日期,并支持区域设置。如果解析的字符串与预期格式不匹配,则会引发IllegalArgumentException
在执行验证之前,您不会说格式字符串是固定的还是可以在运行时提供。因此,在第二种情况下,您需要使用
replace
将“Y”改为“Y”,并将“AM/PM”改为“a”,这是DateTimeFormat
中使用的符号