1 package com.lavans.luz2.commons;
\r
3 import java.text.SimpleDateFormat;
\r
4 import java.util.Calendar;
\r
5 import java.util.Date;
\r
7 import org.apache.commons.logging.Log;
\r
8 import org.apache.commons.logging.LogFactory;
\r
10 public class DateUtils {
\r
12 private static Log logger = LogFactory.getLog(DateUtils.class);
\r
15 * 受け取ったDate型に日付演算した結果をDate型返す。
\r
19 public static Date getDateAdd(Date date, int field, int add){
\r
20 Calendar cal =Calendar.getInstance();
\r
24 cal.add(field, add);
\r
25 return cal.getTime();
\r
35 public static Date getDate(String dateStr){
\r
36 return getDate(dateStr, getFormat(dateStr));
\r
39 * yyyy/MM/dd形式の文字列からDate型を作成。
\r
40 * 与えられた文字列を見てパース方法を判断する。
\r
44 private static final String FORMAT_DATE = "yyyy/MM/dd";
\r
45 private static final String FORMAT_MIN = "yyyy/MM/dd HH:mm";
\r
46 private static final String FORMAT_MSEC = "yyyy/MM/dd HH:mm:ss";
\r
47 private static final String FORMAT_SEC = "yyyy/MM/dd HH:mm:ss.SSS";
\r
48 private static String getFormat(String str){
\r
50 String result = null;
\r
51 if(str.contains(":")){
\r
53 if(str.indexOf(":")==str.lastIndexOf(":")){
\r
55 result = FORMAT_MIN;
\r
58 if(str.contains(".")){
\r
60 result = FORMAT_MSEC;
\r
63 result = FORMAT_SEC;
\r
67 result = FORMAT_DATE;
\r
70 // yyyy/MM/ddのの他にもyyyy-MM-ddも使えるようにする
\r
71 if(str.length()>10){
\r
72 if(str.charAt(4)=='-' && str.charAt(6)=='-'){
\r
73 FORMAT_DATE.replace("/", "-");
\r
81 * 指定された日付文字列とフォーマットでDate型を作成。
\r
86 public static Date getDate(String dateStr, String dateFormat){
\r
87 if(dateStr==null) return null;
\r
88 SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
\r
91 date = sdf.parse(dateStr);
\r
92 } catch (Exception e) {
\r
93 logger.debug(e.getMessage());
\r
106 public static Date cleartime(Date date){
\r
107 Calendar cal = Calendar.getInstance();
\r
109 cal.set(Calendar.HOUR_OF_DAY, 0);
\r
110 cal.set(Calendar.MINUTE, 0);
\r
111 cal.set(Calendar.SECOND, 0);
\r
112 cal.set(Calendar.MILLISECOND, 0);
\r
113 return cal.getTime();
\r