package com.ericsson.m2m.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @(#)DateTimeUtil.java
* 日期时间工具类,进行各种日期时间格式的转化以及格式化
*
* @author haungming
* @version 1.0 ericsson
*/
public class DateTimeUtil {
///
///选中你要转换为的日期格式、然后F查找、对应的方法名。调用这个方法就可以把当前日期转换成String字符串了。
//定义时间日期显示格式
///
public final static String DATE_FORMAT = "yyyy-MM-dd";
public final static String DATE_FORMAT_CN = "yyyy年MM月dd日";
public final static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public final static String TIME_FORMAT_CN = "yyyy年MM月dd日 HH:mm:ss";
public final static String MONTH_FORMAT = "yyyy-MM";
public final static String DATE_FORMAT_EN="yyyy.MM.dd";
public final static String DATA_FORMAT_ON="yy.MM.dd";
public final static String DATA_FORMAT_MM="yyyyMMdd";
public final static String DATA_FORMAT_14 = "yyyyMMddHHmmss";
public final static String DATA_FORMAT_12 = "yyyyMMddHHmm";
public final static String DATA_FORMAT_10 = "MMddHHmmss";
public final static String DATA_FORMAT_6 = "yyyyMM";
public final static String DATA_FORMAT_HHmmss = "HHmmss";
public final static String TIME_FORMAT_MILLI = "yyyy-MM-dd HH:mm:ss.SSS";
/**
* 取得当前系统时间,返回java.util.Date类型
* @see java.util.Date
* @return java.util.Date 返回服务器当前系统时间
*/
public static java.util.Date getCurrDate() {
return new java.util.Date();
}
/**
* 取得当前系统时间戳
* @see java.sql.Timestamp
* @return java.sql.Timestamp 系统时间戳
*/
public static java.sql.Timestamp getCurrTimestamp() {
return new java.sql.Timestamp(System.currentTimeMillis());
}
/**
* 根据格式得到格式化后的日期
* @param currDate 要格式化的日期
* @param format 日期格式,如yyyy-MM-dd
* @see java.text.SimpleDateFormat#format(java.util.Date)
* @return String 返回格式化后的日期,格式由参数<code>format</code>定义,如yyyy-MM-dd,如2006-02-15
*/
public static String getFormatDate(java.util.Date currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.format(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(DATE_FORMAT);
return dtFormatdB.format(currDate);
}
}
/**
* 得到格式化后的时间,格式为yyyy年MM月dd日 HH:mm:ss,如2006年02月15日 15:23:45
* @param currDate 要格式化的时间
* @see #getFormatDateTime(String, String)
* @return Date 返回格式化后的时间,默认格式为yyyy年MM月dd日 HH:mm:ss,如2006年02月15日 15:23:45
*/
public static Date getFormatDateTime_CN(String currDate) {
return getFormatDateTime(currDate, TIME_FORMAT_CN);
}
/**
* 根据格式得到格式化后的时间
* @param currDate 要格式化的时间
* @param format 时间格式,如yyyy-MM-dd HH:mm:ss
* @see java.text.SimpleDateFormat#format(java.util.Date)
* @return String 返回格式化后的时间,格式由参数<code>format</code>定义,如yyyy-MM-dd HH:mm:ss
*/
public static String getFormatDateTime(java.util.Date currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.format(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(TIME_FORMAT);
return dtFormatdB.format(currDate);
}
}
/**
* 根据格式得到格式化后的日期
* @param currDate 要格式化的日期
* @param format 日期格式,如yyyy-MM-dd
* @see java.text.SimpleDateFormat#parse(java.lang.String)
* @return Date 返回格式化后的日期,格式由参数<code>format</code>定义,如yyyy-MM-dd,如2006-02-15
*/
public static Date getFormatDate(String currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.parse(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(DATE_FORMAT);
try {
return dtFormatdB.parse(currDate);
} catch (Exception ex){}
}
return null;
}
/**
* 根据格式得到格式化后的时间
* @param currDate 要格式化的时间
* @param format 时间格式,如yyyy-MM-dd HH:mm:ss
* @see java.text.SimpleDateFormat#parse(java.lang.String)
* @return Date 返回格式化后的时间,格式由参数<code>format</code>定义,如yyyy-MM-dd HH:mm:ss
*/
public static Date getFormatDateTime(String currDate, String format) {
SimpleDateFormat dtFormatdB = null;
try {
dtFormatdB = new SimpleDateFormat(format);
return dtFormatdB.parse(currDate);
} catch (Exception e) {
dtFormatdB = new SimpleDateFormat(TIME_FORMAT);
try {
return dtFormatdB.parse(currDate);
} catch (Exception ex){}
}
return null;
}
public static String getCurrDateTimeStr8(Date date) {
return getFormatDateTime(date,DATA_FORMAT_MM);
}
/**
* 得到格式化后的当前系统时间,格式为yyyyMMddHHmmss,如20060215152345
* @see #getFormatDateTime(java.util.Date)
* @return String 返回格式化后的当前服务器系统时间,格式为yyyyMMddHHmmss,如20060215152345
*/
public static String getCurrDateTimeStrNew() {
return getFormatDateTime(getCurrDate(),DATA_FORMAT_14);
}
public static String getCurrDateTimeStrHHmmss() {
return getFormatDateTime(getCurrDate(),DATA_FORMAT_HHmmss);
}
public static String getCurrDateTimeStrMMddHHmmss() {
return getFormatDateTime(getCurrDate(),DATA_FORMAT_10);
}
/**
* 得到格式化后的当前系统时间,格式为yyyyMM,如200602
* @see #getFormatDateTime(java.util.Date)
* @return String 返回格式化后的当前服务器系统时间,格式为yyyyMMd,如200602
*/
public static String getCurrDateTimeStr6() {
return getFormatDateTime(getCurrDate(),DATA_FORMAT_6);
}
/**
* 得到格式化后的当前系统时间,格式为yyyyMMddHHmm,如200602151523
* @see #getFormatDateTime(java.util.Date)
* @return String 返回格式化后的当前服务器系统时间,格式为yyyyMMddHHmm,如200602151523
*/
public static String getCurrDateTimeStr12() {
return getFormatDateTime(getCurrDate(),DATA_FORMAT_12);
}
/**
* 得到格式化后的当前系统时间,格式为yyyyMMddHHmmss,如20060215152345
* @see #getFormatDateTime(java.util.Date)
* @return String 返回格式化后的当前服务器系统时间,格式为yyyyMMddHHmmss,如20060215152345
*/
public static String getCurrDateTimeStrNew(Date date) {
return getFormatDateTime(date,DATA_FORMAT_14);
}
public static Date getFormatDateNew(String dateStr){
return getFormatDateTime(dateStr, DATA_FORMAT_14);
}
/**
* 得到格式化后的当前系统时间,格式为yyyy年MM月dd日 HH:mm:ss,如2006年02月15日 15:23:45
* @see #getFormatDateTime(java.util.Date, String)
* @return String 返回格式化后的当前服务器系统时间,格式为yyyy年MM月dd日 HH:mm:ss,如2006年02月15日 15:23:45
*/
public static String getCurrDateTimeStr_CN() {
return getFormatDateTime(getCurrDate(), TIME_FORMAT_CN);
}
public static String getMonthBeginStr(){
Calendar nowTime = Calendar.getInstance();
nowTime.set(Calendar.DAY_OF_MONTH, 1);
nowTime.set(Calendar.HOUR_OF_DAY, 0);
nowTime.set(Calendar.MINUTE, 0);
nowTime.set(Calendar.SECOND, 0);
return getFormatDate(nowTime.getTime(), DATA_FORMAT_14);
}
/**
* 得到本月末的时间的字符串,格式:yyyyMMddHHmmss
* @return
*/
public static String getMonthEndStr(){
Calendar now = Calendar.getInstance();
int endDay = now.getActualMaximum(Calendar.DAY_OF_MONTH);
now.set(Calendar.DAY_OF_MONTH, endDay);
now.set(Calendar.HOUR_OF_DAY, 23);
now.set(Calendar.MINUTE, 59);
now.set(Calendar.SECOND, 59);
return getFormatDate(now.getTime(), DATA_FORMAT_14);
}
public static void main(String[] args){
// System.out.println(DateTimeUtil.getMonthBeginStr());
// System.out.println(DateTimeUtil.getMonthEndStr());
// System.out.println(DateTimeUtil.getCurrDateTimeStrNew());
// System.out.println(DateTimeUtil.getFormatDateTime(new Date(), "mmss"));
Calendar date = Calendar.getInstance();
date.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH)-1);
// System.out.println(DateTimeUtil.getCurrDateTimeStrNew(date).substring(0,6));
// System.out.println(date.getYear()+1900);
// System.out.println(Calendar.getInstance().get(Calendar.WEEK_OF_MONTH));
// System.out.println(Calendar.getInstance().get(Calendar.DATE));
// System.out.println(Calendar.getInstance().get(Calendar.MONTH));
System.out.println(getCurrDateTimeStr8(date.getTime()));;
}
}