通常来说,java中的时间转用到SimpleDateFormat类。
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置时间转换的格式。df.format将Date型转变为String型 df.parse将String型转化为Date型。具体使用方法如下
取得当前时间
/**
* getNowDate
*
* @return Date
* @throws ParseException
*/
public static Date getNowDate() throws ParseException {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date DateTimeNow = df.parse(df.format(new Date()));
return DateTimeNow;
}
/**
* getNowDateS
*
* @return String
* @throws ParseException
*/
public static String getNowDateS() throws ParseException {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String DateTimeNow = df.format(new Date());
return DateTimeNow;
}
将各种时间格式转变为yyyyMMdd
/**
* formtData
*
* @param data
* @return
* @throws ParseException
*/
public static String formtData(String data) throws ParseException {
if (formtJapanData(data)) {
Locale locale = new Locale("ja", "JP", "JP");
SimpleDateFormat jformat = new SimpleDateFormat("GGyy.MM.dd", locale);
SimpleDateFormat yformat = new SimpleDateFormat("yyyyMMdd");
String strDate = yformat.format(jformat.parse(data));
return strDate;
} else if (formtYYYYSMMSDD(data) || formtYYYYMMDD(data)) { //yyyy/MM/dd或者yyyyMMdd
data = data.replace("/", "");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
Date dateNew = df.parse(data);
String date = df.format(dateNew);
return date;
}else if (formtYYYYSMSD(data)) { //yyyy/M/dd或者yyyy/MM/d
Date date = FormatDate(data, "yyyy/MM/dd");
String totalymd = FormatDate(date, "yyyyMMdd");
return totalymd;
}
else if (formtYYYYPMMPDD(data)) {//yyyy.MM.dd
Date dateNew = FormatDate(data, "yyyy.MM.dd");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(dateNew);
return date;
} else if (formtYYSMMSDD(data)) {//yy/MM/dd
Date dateNew = FormatDate(data, "yy/MM/dd");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(dateNew);
return date;
} else if (formtYYPMMPDD(data)) {//yy.MM.dd
Date dateNew = FormatDate(data, "yy.MM.dd");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(dateNew);
return date;
} /*else if (formtYYMMDD(data)) {//yyMMdd
Date dateNew = FormatDate(data, "yyMMdd");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(dateNew);
return date;
}*/
else if (formtYYYYSMM(data)) {//yyyy/MM
Date dateNew = FormatDate(data, "yyyy/MM");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(dateNew);
return date;
}
else if (formtYYYYMM(data)) {//yyyyMM
Date dateNew = FormatDate(data, "yyyyMM");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(dateNew);
return date;
}
else if(formtOtherYMD(data)){//其他格式。例如1-Aug-15
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(new Date(data));
return date;
}
return null;
}
/**
* formtYYYYSMMSDD
*
* @param data
* @return boolean
*/
public static boolean formtYYYYSMMSDD(String data) {
if (data.length() != 10) {
return false;
}
try {
FormatDate(data, "yyyy/MM/dd");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYYYMMDD
*
* @param data
* @return boolean
*/
public static boolean formtYYYYMMDD(String data) {
if (data.length() != 8) {
return false;
}
try {
FormatDate(data, "yyyyMMdd");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYYYSMSD
*
* @param data
* @return boolean
*/
public static boolean formtYYYYSMSD(String data) {
if (data.length() != 9) {
return false;
}
try {
FormatDate(data, "yyyy/MM/dd");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYYYPMMPDD
*
* @param data
* @return
*/
public static boolean formtYYYYPMMPDD(String data) {
if (data.length() != 10) {
return false;
}
try {
FormatDate(data, "yyyy.MM.dd");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYSMMSDD
*
* @param data
* @return
*/
public static boolean formtYYSMMSDD(String data) {
if (data.length() != 8) {
return false;
}
try {
FormatDate(data, "yy/MM/dd");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYPMMPDD
*
* @param data
* @return
*/
public static boolean formtYYPMMPDD(String data) {
if (data.length() != 8) {
return false;
}
try {
FormatDate(data, "yy.MM.dd");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYYYSMM
*
* @param data
* @return boolean
*/
public static boolean formtYYYYSMM(String data) {
if (data.length() != 7) {
return false;
}
try {
FormatDate(data, "yyyy/MM");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYYYMM
*
* @param data
* @return boolean
*/
public static boolean formtYYYYMM(String data) {
if (data.length() != 6) {
return false;
}
try {
FormatDate(data, "yyyyMM");
} catch (ParseException e) {
return false;
}
return true;
}
/**
* formtYYYYMM
*
* @param data
* @return boolean
*/
public static boolean formtOtherYMD(String data) {
try {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
df.format(new Date(data));
} catch (Exception e) {
return false;
}
return true;
}
/**
* FormatDate
*
* @param date
* @param format
* @return Date
* @throws ParseException
*/
public static Date FormatDate(String date, String format) throws ParseException {
SimpleDateFormat sf = new SimpleDateFormat(format);
Date dateNew = sf.parse(date);
return dateNew;
}
java时间的比较
/**
* CompareTo
*
* @param selectDate
* @param updateDate
* @return int
* @throws ParseException
*/
public static int CompareTo(String selectDate, Date updateDate) throws ParseException {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");//时间格式:年月日时分秒毫秒
Date dateTimeSelect = df.parse(selectDate);
if (null != dateTimeSelect) {
long selectTime = dateTimeSelect.getTime(); //返回时间的毫秒级,类型为long型
long updateTime = updateDate.getTime();
if (selectTime > updateTime) {
return 1;
} else {
return -1;
}
}
return 1;
}