import java.sql.Timestamp;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.ttsoft.framework.util.DateUtil;
/**
* Title: 时间获取
* Description: 当前时间
* Copyright:
Copyright 2010
* Company:
* @author jiq
*
@version 1.0
*/
public class XJPDateUtil extends DateUtil {
public static final String[] months = { "一月", "二月", "三月",
"四月", "五月", "六月",
"七月", "八月", "九月", "十月", "十一月",
"十二月", };
public static final String[] quarters = { "一季度", "二季度", "三季度", "四季度" };
public XJPDateUtil() {
}
/**
* 获取日期字符串。
*
* <pre>
* 日期字符串格式: yyyyMMdd
* 其中:
* yyyy 表示4位年。
*
MM 表示2位月。
* dd 表示2位日。
* </pre>
*
* @return String "yyyyMMdd"格式的日期字符串。
*/
public static String
getDate() {
SimpleDateFormat formatter = new
SimpleDateFormat("yyyyMMdd");
return formatter.format(new Date());
}
/**
* 获取当前年度字符串。
*
* <pre>
* 日期字符串格式: yyyy
* 其中:
* yyyy 表示4位年。
* </pre>
*
* @return String "yyyy"格式的当前年度字符串。
*/
public static String
getNowYear() {
SimpleDateFormat formatter = new
SimpleDateFormat("yyyy");
return formatter.format(new Date());
}
/**
* 获取当前月度字符串。
*
* <pre>
* 日期字符串格式: MM
* 其中:
*
MM 表示4位年。
* </pre>
*
* @return String
"yyyy"格式的当前月度字符串。
*/
public static String getNowMonth() {
SimpleDateFormat formatter = new
SimpleDateFormat("MM");
return formatter.format(new Date());
}
/**
* 获取当前月度字符串。
*
* <pre>
* 日期字符串格式: dd
* 其中:
*
dd 表示4位年。
* </pre>
*
* @return String
"yyyy"格式的当前月度字符串。
*/
public static String getNowDay() {
SimpleDateFormat formatter = new
SimpleDateFormat("dd");
return formatter.format(new Date());
}
/**
* 获取日期字符串。
*
* <pre>
* 日期字符串格式: yyyyMMdd
* 其中:
* yyyy 表示4位年。
*
MM 表示2位月。
* dd 表示2位日。
* </pre>
*
* @param date
*
需要转化的日期。
* @return String "yyyyMMdd"格式的日期字符串。
*/
public static String
getDate(Date date) {
SimpleDateFormat formatter = new
SimpleDateFormat("yyyy-MM-dd");
return formatter.format(date);
}
/**
* 获取日期字符串。
*
* <pre>
* 日期字符串格式: yyyyMMdd
* 其中:
* yyyy 表示4位年。
*
MM 表示2位月。
* dd 表示2位日。
* </pre>
*
* @param date
*
需要转化的日期。
* @return String "yyyyMMdd"格式的日期字符串。
*/
/**
* 将指定的日期字符串转化为日期对象
*
* @param dateStr
*
日期字符串
* @return java.util.Date
* @roseuid 3F39FE450385
*/
public static Date
getDate(String dateStr) {
if (XJPTypeChecker.isDate(dateStr)) { // 日期型
SimpleDateFormat df = new
SimpleDateFormat("yyyyMMdd");
try {
java.util.Date date = df.parse(dateStr);
return date;
} catch (Exception ex) {
Logger.write("日期格式不符合或者日期为空!请检查!");
return null;
} // end try - catch
} else if
(XJPTypeChecker.isDatetime(dateStr)) { // 日期时间型
SimpleDateFormat df = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss.SSS");
try {
java.util.Date date =
df.parse(dateStr);
return date;
}
catch (Exception ex) {
return null;
} // end try - catch
} // end if
return null;
}
/**
* 获取日期字符串。
*
* <pre>
* 日期字符串格式: yyyy-MM-dd
* 其中:
* yyyy 表示4位年。
*
MM 表示2位月。
* dd 表示2位日。
* </pre>
*
* @return String "yyyy-MM-dd"格式的日期字符串。
*/
public static String
getHyphenDate() {
SimpleDateFormat formatter = new
SimpleDateFormat("yyyy-MM-dd");
return formatter.format(new Date());
}
/**
* 获取日期字符串。
*
* <pre>
* 日期字符串格式: yyyy-MM-dd
* 其中:
* yyyy 表示4位年。
*
MM 表示2位月。
* dd 表示2位日。
* </pre>
*
* @param date
*
需要转化的日期。
* @return String "yyyy-MM-dd"格式的日期字符串。
*/
public static String
getHyphenDate(Date date) {
SimpleDateFormat formatter = new
SimpleDateFormat("yyyy-MM-dd");
return formatter.format(date);
}
/**
*
将"yyyyMMdd"格式的日期字符串转换为日期对象。
*
* @param source
*
日期字符串。
* @return Date 日期对象。
*/
public static Date
parsePlainDate(String source) {
SimpleDateFormat sdf = new
SimpleDateFormat("yyyyMMdd");
return sdf.parse(source, new ParsePosition(0));
}
/**
*
将“yyyy-MM-dd”格式的日期字符串转换为日期对象。
*
* @param source
*
日期字符串。
* @return Date 日期对象。
*/
public static Date
parseHyphenDate(String source) {
SimpleDateFormat sdf = new
SimpleDateFormat("yyyy-MM-dd");
return sdf.parse(source, new ParsePosition(0));
}
/**
* 将指定格式的日期字符串转换为日期对象。
*
* @param source
*
日期字符串。
* @param pattern
*
模式。
* @return Date 日期对象。
*/
public static Date
parseDate(String source, String pattern) {
SimpleDateFormat sdf = new
SimpleDateFormat(pattern);
return sdf.parse(source, new ParsePosition(0));
}
/**
*
将“yyyy-MM-dd”格式的日期字符串转换为“yyyyMMdd”格式的日期字符串。
*
* @param source
*
日期字符串。
* @return String "yyyymmdd"格式的日期字符串。
*/
public static String
toPlainDate(String source) {
Date date = parseHyphenDate(source);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
return formatter.format(date);
}
/**
*
将“yyyyMMdd”格式的日期字符串转换为“yyyy-MM-dd”格式的日期字符串。
*
* @param source
*
日期字符串。
* @return String "yyyy-MM-dd"格式的日期字符串。
*/
public static String
toHyphenDate(String source) {
Date date = parsePlainDate(source);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(date);
}
/**
* 获取时间戳,将日期对象转换为时间戳类型。
*
* @param date
*
日期对象
* @return Timestamp 时间戳
*/
public static
Timestamp getTimestamp(Date date) {
return new
Timestamp(date.getTime());
}
/**
* 获取时间戳,将当前日期转换为时间戳类型。
*
* @return
Timestamp 时间戳
*/
public static Timestamp getTimestamp() {
return new Timestamp(new
Date().getTime());
}
/**
*
将“yyyyMMdd”格式的日期字符串转换为Timestamp类型的对象。
*
* @param source
*
日期字符串
* @return Timestamp 时间戳
*/
public static
Timestamp parseTimestamp(String source) {
Date date =
parsePlainDate(source);
return getTimestamp(date);
}
/**
* 获得年度周期 <br>
* Example:<br>
* XJPDateUtil.getPeriodYear("20040229" ,
-1);<br>
*
XJPDateUtil.getPeriodYear("20040228" , -1);<br>
* XJPDateUtil.getPeriodYear("20020230" ,
2);<br>
*
* @param source
*
时间串
* @param yearPeriod
*
年度周期 -1代表本时间的上一年度,以次类推。
* @return String 时间。
*/
public static String
getPeriodYear(String source, int yearPeriod) {
int p =
Integer.parseInt(source.substring(0, 4)) + yearPeriod;
String newYear =
String.valueOf(p)
+ source.substring(4, source.length());
Date date = parsePlainDate(newYear);
String s = getDate(date);
int ny = Integer.parseInt(s);
int sy = Integer.parseInt(newYear);
while (ny > sy) {
sy--;
ny =
Integer.parseInt(getDate(parsePlainDate(String.valueOf(sy))));
}
return String.valueOf(sy);
}
/**
* 获取当前日期和时间
*
* @return String
*/
public static String
getCurrentDateStr() {
Date date = new Date();
String str = null;
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
str = df.format(date);
return str;
}
/**
* 日期相加
*
* @param day
* 天数
* @return 返回相加后的日期
*/
public static String addDate(int day) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis() + ((long) day) * 24 * 3600
* 1000);
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd
HH:mm:ss");
return df.format(c.getTime());
}
/**
* 返回毫秒
*
* @param date
* 日期
* @return 返回毫秒
*/
public static long getMillis(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.getTimeInMillis();
}
/**
* 获取当前日期和时间
* @param format 日期格式 例:yyyy-MM-dd hh:mm
* @return String
*/
public static String getNowDate(String format) {
Date date = new Date();
String str = null;
SimpleDateFormat
df = new SimpleDateFormat(format);
str = df.format(date);
return
str;
}
/**
* 将strmon的日期减小一个月
*
@param mon
* @return
*/
public static String
getReduceMonDate(String strmon) {
if (strmon != null &&
!strmon.equals("")) {
Date mon =
parseHyphenDate(strmon);
mon.setMonth(mon.getMonth() - 1);
return
getHyphenDate(mon);
} else {
return "";
}
}
public static String
getTimeStr(String dateStr){
Date date=getDate(dateStr);
String
str = null;
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
str = df.format(date);
return str;
}
public static String getTimeStr(){
String str="";
SimpleDateFormat df = new
SimpleDateFormat("HH:mm:ss");
str = df.format(new Date());
return str;
}
}
转自http://blog.csdn.net/thl331860203/article/details/5912435