Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.text.DateFormat;
- import java.util.Arrays;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.TimeZone;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class DateParse {
- public static void main(String[] args) throws Exception {
- final String dateStr = "1997-02-14T00:00:00.0000000+05:30";
- final String metaChars = "$()*+.?[\\^{|"; // Java regex meta-characters
- final Pattern YMD_PATTERN = Pattern.compile(
- "(\\d{4})[/\\-\\.](\\d{2})[/\\-\\.](\\d{2})" // yyyy-mm-dd
- + "T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d{1,20})" // Thh:mm:ss.microsec
- + "\\+(\\d{2}):(\\d{2})" // +th:tm (timezone)
- );
- final Matcher matcher = YMD_PATTERN.matcher(dateStr);
- if (matcher.matches()) {
- final int TOKEN_COUNT = 9;
- final String[] tokens = new String[TOKEN_COUNT];
- for (int i = 0; i < TOKEN_COUNT; i++) {
- tokens[i] = matcher.group(i + 1);
- if (tokens[i] == null) {
- throw new IllegalStateException("Invalid date string - cannot parse");
- }
- }
- System.out.println("" + Arrays.asList(tokens));
- // get time-zone
- final String tzStr = "GMT+" + tokens[7] + ":" + tokens[8];
- final TimeZone tz = TimeZone.getTimeZone(tzStr);
- final Calendar cal = Calendar.getInstance(tz);
- final int y = Integer.parseInt(tokens[0]);
- final int m = Integer.parseInt(tokens[1]);
- final int d = Integer.parseInt(tokens[2]);
- final int hh = Integer.parseInt(tokens[3]);
- final int mm = Integer.parseInt(tokens[4]);
- final int ss = Integer.parseInt(tokens[5]);
- final int ms = Integer.parseInt(tokens[6]);
- cal.set(y, m - 1 /* month is zero-based */, d, hh, mm, ss);
- final Date date = cal.getTime();
- System.out.println(date);
- } else {
- System.out.println("Does not match");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement