常用的时间日期处理类
铁树
tieshu
2006年4月3日星期一
在JSP/J2EE/JAVA的开发中,经常使用一些日期和时间的转换,特将经常使用的一些方法封装在一起,方便使用。
1类 DateUtils概览
构造函数概览 | |
|
方法概览 | |
static String | Adddate(String strDate, int days) //将日期字符串加天数转换成新日期字符串 |
static String | getDateCS() // 获取当前日期(中国,yyyy年MM月dd日) |
static String | getDateId() //用当前日期作为文件名,一般不会重名 取到的值是从当前时间的字符串格式,带有微秒,建议作为记录id 。 |
static String | getFileName() //用当前日期作为文件名,一般不会重名 取到的值是从1970年1月1日00:00:00开始算起所经过的微秒数。 |
static String | getLongStr() //获取当前时间的长字符串形式 "yyyy-MM-dd HH:mm:ss" |
static String | getLongStr(Date date) //获取给定时间的长字符串形式 "yyyy-MM-dd HH:mm:ss" |
static String | getLongStr(int d)//获得d天后的现在时刻;长字符串形式 "yyyy-MM-dd HH:mm:ss" |
static Date | getNow()//获取当前的时间 |
static String | getShortStr() //获取当前时间的短字符串形式 "yyyy-MM-dd"//必须大写MM(月份) |
static String | getShortStr(Date date) //获取给定时间的短字符串形式 "yyyy-MM-dd" |
static String | getWeekCS()//获取当前星期(中国, 如:星期日,星期一,星期二) |
static Date | toLongDate(String strDate) //将字符串转换为一般时间的长格式:yyyy-MM-dd HH:mm:ss |
static Date | toShortDate(String strDate) //将字符串转换为一般时间的短格式;yyyy-MM-dd |
2JSP调用实例
<%@ page contentType="text/html;charset=GBK"%>
<html><head></head><body>
<%=general.DateUtils.getWeekCS()%><br>
<%=general.DateUtils.getDateCS()%><br>
<%=general.DateUtils.getLongStr()%><br>
<%=general.DateUtils.getLongStr(2)%><br>
<%=general.DateUtils.getDateId()%><br>
<%=general.DateUtils.getFileName()%><br>
</body></html>
输出:
星期一
2006年04月03日
2006-04-03 21:
23:45
2006-04-05
21:23:45
20060403212345508
1144070625508
3类DateUtils源码:
/**
* @author 铁树
* 有关时间日期进行处理的方法
*/
package general;
import java.util.*;
import java.text.*;
public class DateUtils {
/**
* //获取当前星期(中国, 如:星期日,星期一,星期二)
*/
public static String getWeekCS() {
Calendar c= GregorianCalendar.getInstance();
c.setFirstDayOfWeek(Calendar.SUNDAY);
String []s={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return s[c.get(Calendar.DAY_OF_WEEK)-1];
}
/**
* //获取当前日期(中国,yyyy年MM月dd日)
*/
public static String getDateCS() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日");
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* //获取当前时间的长字符串形式 "yyyy-MM-dd HH:mm:ss"//必须大写MM(月份)
*/
public static String getLongStr() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* //获得d天后的现在时刻;长字符串形式 "yyyy-MM-dd HH:mm:ss"
* @param d //d天后
*/
public static String getLongStr(int d) {
//Date currentTime = new Date();
Calendar c= GregorianCalendar.getInstance();
c.add(Calendar.DATE,d);//获得d天后的现在时刻
Date date= c.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
return dateString;
}
/**
* //获取给定时间的长字符串形式 "yyyy-MM-dd HH:mm:ss"//必须大写MM(月份)
*/
public static String getLongStr(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
return dateString;
}
/**
* //获取当前时间的短字符串形式 "yyyy-MM-dd"//必须大写MM(月份)
*/
public static String getShortStr() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* //获取给定时间的短字符串形式 "yyyy-MM-dd"//必须大写MM(月份)
*/
public static String getShortStr(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(date);
return dateString;
}
/**
* //将字符串转换为一般时间的长格式:yyyy-MM-dd HH:mm:ss
*/
public static Date toLongDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ParsePosition pos = new ParsePosition(0);//从0开始解析
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
/**
* //将字符串转换为一般时间的短格式;yyyy-MM-dd
*/
public static Date toShortDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);//从0开始解析
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
/**
* //将日期字符串加天数转换成新日期字符串 *
* @param strDate//原日期字符串:yyyy-MM-dd
* @param days//增加的天数
*/
public static String Adddate(String strDate, int days) {
String[] date = strDate.split("-"); //将要转换的日期字符串拆分成年月日
int year, month, day;
year = Integer.parseInt(date[0]);
month = Integer.parseInt(date[1]) - 1;
day = Integer.parseInt(date[2]);
GregorianCalendar d = new GregorianCalendar(year, month, day);
d.add(Calendar.DATE, days);
Date dd = d.getTime();
DateFormat df = DateFormat.getDateInstance();
String adddate = df.format(dd);
return adddate;
}
/**
* //获取当前的时间
*/
public static Date getNow() {
Date currentTime = new Date();
return currentTime;
}
/**
* //用当前日期作为文件名,一般不会重名 取到的值是从1970年1月1日00:00:00开始算起所经过的微秒数。一秒是一千微秒。
*/
public static String getFileName() {
java.util.Calendar calendar = java.util.Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());//文件名
return filename;
}
/**
* //用当前日期作为文件名,一般不会重名 取到的值是从当前时间的字符串格式,带有微秒,建议作为记录id 。一秒是一千微秒。
*/
public static String getDateId() {
Date currentTime = new Date();
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(
"yyyyMMddHHmmssSSS");
String dateString = formatter.format(currentTime);
return dateString;
}
}