package com.hangum.tadpole.commons.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * csv loader * * @see original file location is (http://viralpatel.net/blogs/java-load-csv-file-to-database/) */ public class DateUtil { /** * 현재 시간의 세컨드 * @return */ public static long getDateSecond() { Calendar _cal = Calendar.getInstance(); return (_cal.getTimeInMillis() % 1000) * 1000; } /** * 몇개월 후 * * @param month * @return */ public static long afterMonthToMillsMonth(int month) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, month); return cal.getTimeInMillis(); } /** * 몇일 후 * * @param day * @return */ public static long afterMonthToMillis(int day) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, day); return cal.getTimeInMillis(); } /** * 주어진 시간 기준으로 몇일 후 * * @param time * @param intMaxDay * @return */ public static long afterMonthToMillis(long time, int day) { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(time); cal.add(Calendar.DAY_OF_YEAR, day); return cal.getTimeInMillis(); } // List of all date formats that we want to parse. // Add your own format here. private static List<SimpleDateFormat> dateFormats = new ArrayList<SimpleDateFormat>() { private static final long serialVersionUID = 1L; { add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS")); add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")); add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); add(new SimpleDateFormat("yyyy-MM-dd")); add(new SimpleDateFormat("HH:mm:ss")); add(new SimpleDateFormat("hh:mm:ss a")); add(new SimpleDateFormat("M/dd/yyyy")); add(new SimpleDateFormat("dd.M.yyyy")); add(new SimpleDateFormat("M/dd/yyyy hh:mm:ss a")); add(new SimpleDateFormat("dd.M.yyyy hh:mm:ss a")); add(new SimpleDateFormat("dd.MMM.yyyy")); add(new SimpleDateFormat("dd-MMM-yyyy")); } }; /** * Convert String with various formats into java.util.Date * * @param input * Date as a string * @return java.util.Date object if input string is parsed * successfully else returns null */ public static Date convertToDate(String input) { Date date = convertToDate(input, false); if (date != null) { return date; }else{ return convertToDate(input, true); } } public static Date convertToDate(String input, boolean isLenient) { Date date = null; if(null == input) { return null; } for (SimpleDateFormat format : dateFormats) { try { format.setLenient(isLenient); date = format.parse(input); } catch (ParseException e) { } if (date != null) { break; } } return date; } }