Java 根据位数拆分给定的时间

Java 根据位数拆分给定的时间,java,validation,date,datetime,Java,Validation,Date,Datetime,我有一根能固定时间的绳子 比如说, 字符串时间=“11235678” 以上时间单位为HH MM SS MS(小时、分钟、秒、毫秒) 不能保证所有时间都会收到秒和毫秒,但是如果我收到它,我必须相应地进行分割 现在我知道我们可以使用长度分割字符串,但我想知道是否有更好的方法 奶酪 这将把输入分成两位数 String[] a = s.split("(?<=\\G.{2})"); String[]a=s.split((?您可以尝试以下方法: public Date splitTimeByLeng

我有一根能固定时间的绳子

比如说,

字符串时间=“11235678”

以上时间单位为HH MM SS MS(小时、分钟、秒、毫秒)

不能保证所有时间都会收到秒和毫秒,但是如果我收到它,我必须相应地进行分割

现在我知道我们可以使用长度分割字符串,但我想知道是否有更好的方法


奶酪

这将把输入分成两位数

String[] a = s.split("(?<=\\G.{2})");

String[]a=s.split((?您可以尝试以下方法:

public Date splitTimeByLength(String time) throws ParseException{
    String splitPattern = time.length() > 4 ? "hhmmssSS" : "hhmm";
    SimpleDateFormat sdf = new SimpleDateFormat(splitPattern);
    return sdf.parse(time);
}

更多信息:

基于输入的长度决定格式,并使用
SimpleDataFormat
解析和验证输入是的,这就是我正在做的。但我正在寻找更好的方法:)建议的方法有什么问题?你能解释一下它是如何工作的吗?答案很好,顺便说一下:)我稍微简化了expr,这也使得解释更容易:matcher向前移动,直到看到后面的2个字符并进行分割,\\G(最后一个匹配)使其在匹配字符后继续