"^(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)$");
private static final Pattern PATTERN_YYMMDD_HH_MM = Pattern.compile(
"^(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)$");
+ private static final Pattern PATTERN_YYMMDD = Pattern.compile(
+ "^(\\d+)\\D+(\\d+)\\D+(\\d+)$");
private WayBackTimeParser() {
}
}
}
+ final Matcher mYMD = PATTERN_YYMMDD.matcher(time);
+ if (mYMD.matches()) {
+ try {
+ final DateFormat fmt = new SimpleDateFormat("yyyy:MM:dd:");
+ StringBuilder str = new StringBuilder();
+ for (int i = 1; i <= 3; i++) {
+ str.append(mYMD.group(i));
+ str.append(":");
+ }
+ final Date date = fmt.parse(str.toString());
+ return date.getTime() / 1000;
+ } catch (ParseException ex) {
+ throw new IOException("Cannot parse wayback time: " + time, ex);
+ }
+ }
+
+
throw new IOException("Cannot parse wayback time: " + time);
}
}
assertEquals(expected, actual);
}
+ /** 年月日指定 */
+ @Test
+ public void testParseYYYYMMDD() throws IOException {
+ final String text = "2011/08/19";
+ final long expected = 1313679600L;
+ final long actual = WayBackTimeParser.parse(text);
+ assertEquals(expected, actual);
+ }
+
/** 1970 年 1 月 1 日 00:00:00 GMT からの秒数指定(一般的なミリ秒指定ではないことに注意 */
@Test
public void testParseNumber() throws IOException {