package net.virgosoft.framework;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/**
* 使用时间的工具类
* Date: 2005-8-22
* Time: 15:35:14
*
* @author <a href="mailto:nemoml@gmail.com">MengLe</a>
*/
public class TimeUtil {
private static final Calendar cal = Calendar.getInstance();
/**
* 当前时间
*
* @return
*/
public final static Date currentTime() {
return new Date(System.currentTimeMillis());
}
/**
* 日期转换字符串
*
* @param date
* @return
*/
public final static String getYYYYMMDD(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyyMMdd");
return simpledateformat.format(date);
}
/**
* 日期转换字符串
*
* @param date
* @return
*/
public final static String getCustom(Date date, String format) {
SimpleDateFormat simpledateformat = new SimpleDateFormat(format);
return simpledateformat.format(date);
}
/**
* 时间转换字符串
*
* @param date
* @return
*/
public final static String getYYYYMMDDHHMMSS(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyyMMddHHmmss");
return simpledateformat.format(date);
}
/**
* 时间转换字符串
*
* @param date
* @return
*/
public final static String getYYMMDDHHMMSS(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd");
return simpledateformat.format(date);
}
/**
* 取出年
*
* @param date
* @return
*/
public final static String getYY(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy");
return simpledateformat.format(date);
}
/**
* 取出月
*
* @param date
* @return
*/
public final static String getMM(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("MM");
return simpledateformat.format(date);
}
/**
* 取出日
*
* @param date
* @return
*/
public final static String getDD(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("dd");
return simpledateformat.format(date);
}
/**
* 字符串转换时间
*
* @param dateString
* @return
*/
public static final Date controlTime(String dateString) {
String s1 = dateString.substring(0, 4);
String s2 = "";
String s3 = "";
String s4 = dateString.substring(5);
int i = s4.indexOf("-");
if (i == 1) {
s2 = s4.substring(0, 1);
s3 = s4.substring(2);
} else {
s2 = s4.substring(0, 2);
s3 = s4.substring(3, 5);
}
cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue());
Date date = cal.getTime();
return date;
}
/**
* 字符串转换时间
*
* @param dateString
* @return
*/
public static final Date controlTime1(String dateString) {
String s1 = dateString.substring(0, 4);
String s2 = "";
String s3 = "";
String s4 = dateString.substring(5);
int i = s4.indexOf("-");
if (i == 1) {
s2 = s4.substring(0, 1);
s3 = s4.substring(2);
} else {
s2 = s4.substring(0, 2);
s3 = s4.substring(3, 5);
}
cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue(), 0, 0, 0);
Date date = cal.getTime();
return date;
}
/**
* 字符串转换时间
*
* @param dateString
* @return
*/
public static final java.sql.Date controlTime2(String dateString) {
String s1 = dateString.substring(0, 4);
String s2 = "";
String s3 = "";
String s4 = dateString.substring(5);
int i = s4.indexOf("-");
if (i == 1) {
s2 = s4.substring(0, 1);
s3 = s4.substring(2);
} else {
s2 = s4.substring(0, 2);
s3 = s4.substring(3, 5);
}
cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue(),
new Integer(dateString.substring(11, 13)), new Integer(dateString.substring(14, 16)), new Integer(dateString.substring(17, 19)));
java.sql.Date date = new java.sql.Date(cal.getTime().getTime());
return date;
}
/**
* 字符串转换时间
*
* @param dateString
* @return
*/
public static final Date controlTime3(String dateString) {
String s1 = dateString.substring(0, 4);
String s2 = "";
String s3 = "";
String s4 = dateString.substring(5);
int i = s4.indexOf("-");
if (i == 1) {
s2 = s4.substring(0, 1);
s3 = s4.substring(2);
} else {
s2 = s4.substring(0, 2);
s3 = s4.substring(3, 5);
}
cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue(),
new Integer(dateString.substring(11, 13)), new Integer(dateString.substring(14, 16)), new Integer(dateString.substring(17, 19)));
Date date = cal.getTime();
return date;
}
/**
* 取年份
*
* @param date
* @return
*/
public static final String getYear(Date date) {
cal.setTime(date);
return String.valueOf(cal.get(1));
}
/**
* 取月份
*
* @param date
* @return
*/
public static final String getMonth(Date date) {
String s = "";
cal.setTime(date);
if (cal.get(2) < 9)
s = "0";
return String.valueOf(cal.get(1)) + s + String.valueOf(cal.get(2) + 1);
}
/**
* 取月份
*
* @param date
* @return
*/
public static final String getMonthNumber(Date date) {
String s = "";
cal.setTime(date);
if (cal.get(2) < 9)
s = "0";
return String.valueOf(cal.get(2) + 1);
}
/**
* 取日
*
* @param date
* @return
*/
public static final String getDay(Date date) {
String s = "";
String s1 = "";
cal.setTime(date);
if (cal.get(2) < 9)
s = "0";
if (cal.get(5) < 10)
s1 = "0";
return String.valueOf(cal.get(1)) + s + String.valueOf(cal.get(2) + 1) + s1 + String.valueOf(cal.get(5));
}
/**
* 取星期X
*
* @param date
* @return
*/
public static final String getWeek(Date date) {
String s = "";
cal.setTime(date);
if (cal.get(3) < 10)
s = "0";
return String.valueOf(cal.get(1)) + s + String.valueOf(cal.get(3));
}
/**
* 取季节
*
* @param date
* @return
*/
public static final String getSeason(Date date) {
cal.setTime(date);
int i = cal.get(2);
byte byte0 = 1;
if (i >= 3 && i <= 5)
byte0 = 2;
if (i >= 6 && i <= 8)
byte0 = 3;
if (i >= 9 && i <= 11)
byte0 = 4;
return String.valueOf(cal.get(1)) + "0" + String.valueOf(byte0);
}
/**
* 去现在完整时间字符串
*
* @return
*/
public static final String getNowFormatTimeString() {
Date date = new Date();
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = simpledateformat.format(date);
return s;
}
/**
* 转换完整的时间字符串
*
* @param date
* @return
*/
public static final String getFormatTimeString(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = simpledateformat.format(date);
return s;
}
/**
* 根据输入的日期,求出这个月有多少天
*/
public static final int getDaysInMonth(int year, int mon) {
java.util.GregorianCalendar date = new java.util.GregorianCalendar(year, mon - 1, 1);
return (date.getActualMaximum(Calendar.DATE));
}
/**
* 根据输入的日期,求出这个月有多少天
*/
public static final int getDaysInMonth(Date d) {
int year = Integer.parseInt(getYear(d));
int mon = Integer.parseInt(getMonthNumber(d));
java.util.GregorianCalendar date = new java.util.GregorianCalendar(year, mon - 1, 1);
return (date.getActualMaximum(Calendar.DATE));
}
/**
* 计算两个日期之间的天数
*
* @param fDate
* @param oDate
* @return
*/
public static int daysOfTwo(Date fDate, Date oDate) {
//首先定义一个calendar,必须使用getInstance()进行实例化
Calendar aCalendar = Calendar.getInstance();
//里面野可以直接插入date类型
aCalendar.setTime(fDate);
//计算此日期是一年中的哪一天
int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
aCalendar.setTime(oDate);
int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
//求出两日期相隔天数
int days = day2 - day1;
return days;
}
/**
* 取出月
* 取出的值为 1,2...11,12 这样的
*
* @param date
* @return
*/
public final static String getM(Date date) {
SimpleDateFormat simpledateformat = new SimpleDateFormat("M");
return simpledateformat.format(date);
}
public static final Date dateByInput(int time, Date date) {
Calendar calNow = Calendar.getInstance();
calNow.setTime(date);
calNow.add(Calendar.DATE, time);//当前日期前前7天
Date daNow = calNow.getTime();
return daNow;
}
/**
* 将毫秒数l 转换为 00:00:00格式
*
* @param l
* @return
*/
public final static String formatHMS(long l) {
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("GMT+0:00"));
String ff = formatter.format(l);
return ff;
}
}
posted on 2009-05-21 09:36
雨飞 阅读(279)
评论(0) 编辑 收藏