java日期格式化的使用
阿新 • • 發佈:2018-12-16
java日期格式化
日期格式
/*** 系統總的失效日期. */ public static final String DATE_FOREVER = "9999-12-31"; /** 時間格式. */ private static final String FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss"; /** 到小時分鐘的日期格式. */ private static final String FORMAT_DATETIME_HM = "yyyy-MM-dd HH:mm"; /** 全時間格式. */ private static final String FORMAT_FULLTIME = "yyMMddHHmmssSSS"; /** 日期格式. */ private static final String FORMAT_DATE = "yyyy-MM-dd"; /** 日期格式. */ private static final String FORMAT_YEARMONTH = "yyyy-MM"; /** 純時間格式. */ private static final String FORMAT_TIME = "HH:mm:ss";
1.java的日期格式化SimpleDateFormat
將日期格式化為指定的字串.
import java.text.SimpleDateFormat; public static void main(String[] args) { System.out.println(System.currentTimeMillis()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss:SSS"); String formatStr =formatter.format(new Date()); System.out.println(formatStr);//2017-九月-15 13:17:08:355 SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); String formatStr2 =formatter2.format(new Date()); System.out.println(formatStr2);//2017-09-15 13:18:44:672 }
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestSimpleDateFormat { /** * 將日期字串轉換成一個日期物件 * @param dateStr 日期字串 * @param format 格式 * @return * @throws ParseException */ public static Date formatDateStr(String dateStr,String format) throws ParseException{ SimpleDateFormat sdf=new SimpleDateFormat(format); return sdf.parse(dateStr); } /** * 將日期物件格式化為指定格式的日期字串 * @param date 傳入的日期物件 * @param format 格式 * @return */ public static String formatDate(Date date,String format){ String result=""; SimpleDateFormat sdf=new SimpleDateFormat(format); if(date!=null){ result=sdf.format(date); } return result; } public static void main(String[] args) throws ParseException { Date date=new Date(); /*SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(date));*/ System.out.println(formatDate(date,"yyyy-MM-dd")); System.out.println(formatDate(date,"yyyy-MM-dd HH:mm:ss")); System.out.println(formatDate(date,"yyyy年MM月dd日 HH時mm分ss秒")); String dateStr="1989-11-02 10:04:07"; Date date2=formatDateStr(dateStr,"yyyy-MM-dd HH:mm:ss"); System.out.println(formatDate(date2,"yyyy-MM-dd HH:mm:ss")); } }
else if ("TIME".equalsIgnoreCase(columnValue[0])) {
String StrVal = value.toString();
try {
Date d1 = new SimpleDateFormat("yyyy年MM月dd日").parse(StrVal);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String time = format.format(d1);
value = time;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
將日期字串轉換成一個日期物件
public static Date formatDateStr(String dateStr,String format) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(format);
return sdf.parse(dateStr);
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String TimeNow = df.format(new Date());
Date time = null;
try {
time = df.parse(TimeNow);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
將中文年月日轉為資料庫中的日期格式
String StrVal = value.toString();
try {
Date d1 = new SimpleDateFormat("yyyy年MM月dd日").parse(StrVal);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String time = format.format(d1);
value = time;
}
根據格式,獲取當前時間,返回值String
public static String currTimer(String format){
SimpleDateFormat df = new SimpleDateFormat(format); //設定日期格式
return df.format(new Date()); // new Date()為獲取當前系統時間
}
得到指定日期的字串字串
public static String getDate() {
return getDate(Calendar.getInstance());
}
/**
* @param calendar 指定的日期.
* @return 日期字串
*/
private static final String FORMAT_DATE = "yyyy-MM-dd";
public static String getDate(Calendar calendar) {
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* 得到當前的日期時間字串,到小時分鐘.<br>
* <br>
* @return 日期時間字串
*/
private static final String FORMAT_DATETIME_HM = "yyyy-MM-dd HH:mm";
public static String getDateTimeHm() {
Calendar calendar = Calendar.getInstance();
return getStringFromDate(calendar.getTime(), FORMAT_DATETIME_HM);
}
/**
* 得到當前的日期時間字串.<br>
* <br>
* @return 日期時間字串
*/
private static final String FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss";
public static String getDatetimeZd() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
return getStringFromDate(calendar.getTime(), FORMAT_DATETIME);
}
public static String getStringFromDate(Date d, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(d);
}
得到當前的全時間字串,包含毫秒
/**
* @return 日期時間字串
*/
public static String getFulltime() {
Calendar calendar = Calendar.getInstance();
return getStringFromDate(calendar.getTime(), FORMAT_FULLTIME);
}
2.Calendar 對日期進行操作
import java.util.Calendar;
import java.util.Date;
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH)+1);
System.out.println("現在是:"+calendar.get(Calendar.YEAR)+"年"
+(calendar.get(Calendar.MONTH)+1)+"年"
+calendar.get(Calendar.DAY_OF_MONTH)+"日"
+calendar.get(Calendar.HOUR_OF_DAY)+"時"
+calendar.get(Calendar.MINUTE)+"分"
+calendar.get(Calendar.SECOND)+"秒");
}
根據規定格式的字串得到Calendar
public static Calendar getCalendar(String dateString) {
Calendar calendar = Calendar.getInstance();
String[] items = dateString.split("-");
calendar
.set(Integer.parseInt(items[0]), Integer.parseInt(items[1]) - 1, Integer.parseInt(items[2]));
return calendar;
}
DateUtil.countDate(entity.getDocimasiaDate(),entity.getDocimasiaCycle().split(",")[0],Integer.parseInt(entity.getDocimasiaCycle().split(",")[1]))
public static Date countDate(Date date,String type,Integer number){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if ("day".equals(type)) {
calendar.add(Calendar.DAY_OF_MONTH, number);
}
if ("month".equals(type)) {
calendar.add(Calendar.MONTH,number);
}
if ("year".equals(type)) {
calendar.add(Calendar.YEAR,number);
}
if ("week".equals(type)) {
calendar.add(Calendar.WEEK_OF_YEAR,number);
}
return calendar.getTime();
}
java
根據規定格式的字串得到Calendar
/**
* @param dateString 日期串.
* @return 對應Calendar
*/
public static Calendar getCalendar(String dateString) {
Calendar calendar = Calendar.getInstance();
String[] items = dateString.split("-");
calendar
.set(Integer.parseInt(items[0]), Integer.parseInt(items[1]) - 1, Integer.parseInt(items[2]));
return calendar;
}
得到與當前日期相差指定天數的日期字串
/**
* @param days 前後的天數,正值為後, 負值為前.
* @return 日期字串
*/
public static String getCertainDate(int days) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, days);
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* @param dateString 指定的日期.
* @param days 前後的天數,正值為後, 負值為前.
* @return 日期字串
*/
public static String getCertainDate(String dateString, int days) {
Calendar calendar = getCalendar(dateString);
calendar.add(Calendar.DATE, days);
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
得到當前日期的所在月的第一天的日期
/**
* @param date 當前日期.
* @return String 返回的日期
*/
public static String getMonthFirstDay(String date) {
Calendar cal = getCalendar(date);
String month = Cast.to(cal.get(Calendar.MONTH) + 1, "1");
String year = Cast.to(cal.get(Calendar.YEAR), "");
if (Integer.parseInt(month) < 10) {
month = "0" + month;
}
return year + "-" + month + "-01";
}
java獲取當月的開始時間
public static Date getLastMonthStartTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH,1);//設定為1號,當前日期既為本月第一天
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
Date date = cal.getTime();
return date;
}
得到當前日期的所在月的最後一天的日期.
/**
* @param date 當前日期.
* @return 返回的日期
*/
public static String getMonthLastDay(String date) {
Calendar cal = getCalendar(date);
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
int nextMonth = month + 1;
int nextYear = year;
if (nextMonth == 13) {
nextMonth = 1;
nextYear = nextYear + 1;
}
String nextMonthFirstDay = nextYear + "-" + nextMonth + "-01";
return getCertainDate(nextMonthFirstDay, -1);
}
取得兩日期間的月份差數
public static int getMonthDiff(String startDate, String endDate) {
String[] startArray = startDate.split("-");
String[] endArray = endDate.split("-");
int startYear = Integer.parseInt(startArray[0]);
int startMonth = Integer.parseInt(startArray[1]);
int endYear = Integer.parseInt(endArray[0]);
int endMonth = Integer.parseInt(endArray[1]);
return Math.abs((endYear - startYear) * 12 + endMonth - startMonth);
}
java獲取上個月的最後一天
String lastDay = lastMonthDay();
private String lastMonthDay(){
/* Calendar cal = Calendar.getInstance();
//下面可以設定月份,注:月份設定要減1,所以設定1月就是1-1,設定2月就是2-1,如此類推
cal.set(Calendar.MONTH, 1-1);
//調到上個月
cal.add(Calendar.MONTH, -1);
//得到一個月最最後一天日期(31/30/29/28)
int MaxDay=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//按你的要求設定時間
cal.set( cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23, 59, 59);
//按格式輸出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = "";
date = sdf.format(cal.getTime());*/
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String time = format.format(c.getTime());
//得到一個月最後一天日期(31/30/29/28)
int MaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
//按你的要求設定時間
c.set( c.get(Calendar.YEAR), c.get(Calendar.MONTH), MaxDay, 23, 59, 59);
//按格式輸出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(c.getTime()); //上月最後一天
return date;
}
}
獲取季度與當年當月開始的時間
//獲取當前季度的開始時間
public static Date getCurrentQuarterStartTime() {
Calendar c = Calendar.getInstance();
int currentMonth = c.get(Calendar.MONTH) + 1;
SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
Date now = null;
try {
if (currentMonth >= 1 && currentMonth <= 3)
c.set(Calendar.MONTH, 0);
else if (currentMonth >= 4 && currentMonth <= 6)
c.set(Calendar.MONTH, 3);
else if (currentMonth >= 7 && currentMonth <= 9)
c.set(Calendar.MONTH, 6);
else if (currentMonth >= 10 && currentMonth <= 12)
c.set(Calendar.MONTH, 9);
c.set(Calendar.DATE, 1);
String nowe = null;
nowe = shortSdf.format(c.getTime());
now = shortSdf.parse(nowe);
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
//獲取當年的開始時間
public static Date getCurrentYearStartTime() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
Date now = null;
try {
c.set(Calendar.MONTH, 0);
c.set(Calendar.DATE, 1);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
now = format.parse(format.format(c.getTime()));
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
java獲取當年,月同比日期:
@Service
public class IndexService {
public List<IBean> getGztzd(String type) {
String date = getDate(type);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format.format(Calendar.getInstance().getTime());
private String getDate(String type) {// 處理日期
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
String date = "";
if (type.equals("1")) {// 上個星期的日期
/* c.setTime(new Date());
c.add(Calendar.DATE, -7);*/
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
Date day = c.getTime();
date = format.format(day);
}
if (type.equals("2")) {// 上個月的日期 只考慮當年 不包含從 今年的1月份到去年的12月
c.setTime(new Date());
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH, 1);
date = format.format(c.getTime());
}
if (type.equals("3")) {// 上一年的日期 只考慮當年
c.add(Calendar.YEAR, 0);
c.set(Calendar.DAY_OF_YEAR, 1);
date = format.format(c.getTime());
}
return date;
}
private String ztrq(String time){//昨天的日期
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
String date = "";
c.setTime(new Date());
c.add(Calendar.DATE,-1);
date = format.format(c.getTime());
return date;
}
private String ylrq(String time){//上個月的日期 考慮跨年 今年的1月份計算去年12月份 一個月前的日期
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
String date = "";
c.setTime(new Date());
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH, 1);
date = format.format(c.getTime());
return date;
}
private String nlrq(String time){//去年的日期 同上
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
String date = "";
c.setTime(new Date());
c.add(Calendar.YEAR, 0);
c.set(Calendar.DAY_OF_YEAR, 1);
date = format.format(c.getTime());
return date;
}
java獲取一年期的同比日期
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMdd");
java.util.Date timeNow;
java.util.Date timeNow1;
String qn = null;
try {
timeNow = df1.parse(month);
String date1 = df.format(timeNow);
timeNow1 = df.parse(date1);
Calendar calendar = Calendar.getInstance();
calendar.setTime(timeNow1);
calendar.add(Calendar.YEAR, -1); //計算一年前的日期
qn = df.format(calendar.getTime()); //輸出格式為 yyyy-MM-dd的日期} catch (ParseException e) {// TODO Auto-generated catch block e.printStackTrace(); }
java日期處理工具類
/**
* @param s 字串內容.
* @return 日期
*/
public static String getStringFromDate(Date d, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(d);
}
public static Date getDateFromString(String s) {
return getDateFromString(s, FORMAT_DATE);
}
/**
* @param s 字串內容.
* @param format 字串格式.
* @return 日期
*/
public static Date getDateFromString(String s, String format) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(s);
} catch (Exception e) {
return null;
}
}
/**
* @param days 前後的天數,正值為後, 負值為前.
* @return 日期字串
* 得到與當前日期相差指定天數的日期字串
*/
private static final String FORMAT_DATE = "yyyy-MM-dd";
public static String getCertainDate(int days) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, days);
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* @param days 前後的天數,正值為後, 負值為前.
* @return 日期字串
* 得到與指定日期相差指定天數的日期字串
*/
public static String getCertainDate(String dateString, int days) {
Calendar calendar = getCalendar(dateString);
calendar.add(Calendar.DATE, days);
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* @param dateString 指定的日期.
* @param period 前後的天數,正值為後, 負值為前.
* @param periodType 週期類別 可以是天、月、年.
* @return 日期字串
*/
public static String getCertainDate(String dateString, int period, int periodType) {
Calendar calendar = getCalendar(dateString);
switch (periodType) {
case 1: // 天
calendar.add(Calendar.DATE, period);
break;
case 2: // 月
calendar.add(Calendar.MONTH, period);
break;
case 3: // 年
calendar.add(Calendar.MONTH, period * 12);
break;
default:
}
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* @param datetime 需要調整的日期(帶時間).
* @param days 調整天數.
* @return 調整後的日期(帶時間)
* 某日期(帶時間)加上幾天得到另外一個日期(帶時間)
*/
private static final String FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss";
public static String getCertainDatetime(String datetime, int days) {
Date curDate = getDateFromString(datetime, FORMAT_DATETIME);
Calendar calendar = Calendar.getInstance();
calendar.setTime(curDate);
calendar.add(Calendar.DATE, days);
return getStringFromDate(calendar.getTime(), FORMAT_DATETIME);
}
/**
* @param dif 前後的月數,正值為後, 負值為前.
* @return 得到與當前日期相差指定月數的日期字串.
*/
public static String getCertainMonth(int dif) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, dif);
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* @param dif 前後的月數,正值為後, 負值為前.
* @param format 格式
* @return 得到與當前日期相差指定月數的日期字串.
*/
public static String getCertainMonth(int dif, String format) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, dif);
return getStringFromDate(calendar.getTime(), format);
}
/**
* @param addNum 要增加的天數.
* @param getDate 某日期.
* @return 與某日期相差addNum天的日期
* 某日期加上幾天得到另外一個日期
*/
public static String getDateAdded(int addNum, String getDate) {
return getCertainDate(getDate, addNum);
}
得到指定日期的星期一工具類
/**
* @param d 日期.
* @param format 輸出字串格式.
* @return 日期字串
*/
public static String getStringFromDate(Date d, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(d);
}
/**
* @param dateString 指定的日期.
* @param period 前後的天數,正值為後, 負值為前.
* @param periodType 週期類別 可以是天、月、年.
* @return 日期字串
*/
public static String getCertainDate(String dateString, int period, int periodType) {
Calendar calendar = getCalendar(dateString);
switch (periodType) {
case 1: // 天
calendar.add(Calendar.DATE, period);
break;
case 2: // 月
calendar.add(Calendar.MONTH, period);
break;
case 3: // 年
calendar.add(Calendar.MONTH, period * 12);
break;
default:
}
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* @return 得到指定日期的星期一的日期
*/
public static String getFirstDateOfWeek() {
return getFirstDateOfWeek(getDate());
}
/**
* @return 日期字串
*/
public static String getDate() {
return getDate(Calendar.getInstance());
}
public static String getDate(Calendar calendar) {
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
/**
* @param dateString 日期字串.
* @return 本週星期一的日期
*/
public static String getFirstDateOfWeek(String dateString) {
Calendar calendar = getCalendar(dateString);
int iCount;
if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
iCount = -6;
} else {
iCount = Calendar.MONDAY - calendar.get(Calendar.DAY_OF_WEEK);
}
return getCertainDate(dateString, iCount);
}
/**
* @param date 當前日期.
* @return 下週一日期,如果當前日期是週六或者週日,則返回下週一的日期
*/
public static String getWorkDate(final String date) {
Date curDate = getDateFromString(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(curDate);
int week = calendar.get(Calendar.DAY_OF_WEEK);
if (week == Calendar.SATURDAY) {
calendar.add(Calendar.DATE, 2);
} else if (week == Calendar.SUNDAY) {
calendar.add(Calendar.DATE, 1);
}
return getDate(calendar);
}
java日期比較大小
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date dt1 = df.parse(startTime);
Date dt2 = df.parse(endTime);
if(dt1.getTime() > dt2.getTime())
{
return FAILURE
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
before after函式比較時間的大小
public boolean sendMetting(Date startTime,String orgType,String activityType) {
Date date = format.parse(activityTime.substring(0, 10));
if(!startTime.before(date)) { //before 如果startTime小於date為true
if(userIds != null && userIds.length() > 0) {
}
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
比較兩個純時間格式工具類 12:00 , 08:00; or 12:00:00,08:00:00
/**
* @param firstTime the first time string.
* @param secondTime the second time string.
* @return 0 -- same 1 -- first bigger than second -1 -- first smaller than
* second -2 -- invalid time format
*/
public static int compareOnlyByTime(String firstTime, String secondTime) {
try {
String timeDelm = ":";
// calculate the first time to integer
int pos = firstTime.indexOf(timeDelm);
int iFirst = Integer.parseInt(firstTime.substring(0, pos)) * 10000;
firstTime = firstTime.substring(pos + 1);
pos = firstTime.indexOf(timeDelm);
if (pos > 0) {
iFirst = iFirst + (Integer.parseInt(firstTime.substring(0, pos)) * 100)
+ Integer.parseInt(firstTime.substring(pos + 1));
} else {
iFirst = iFirst + (Integer.parseInt(firstTime) * 100);
}
// calculate the second time string to integer
pos = secondTime.indexOf(timeDelm);
int iSecond = Integer.parseInt(secondTime.substring(0, pos)) * 10000;
secondTime = secondTime.substring(pos + 1);
pos = secondTime.indexOf(timeDelm);
if (pos > 0) {
iSecond = iSecond + (Integer.parseInt(secondTime.substring(0, pos)) * 100)
+ Integer.parseInt(secondTime.substring(pos + 1));
} else {
iSecond = iSecond + (Integer.parseInt(secondTime) * 100);
}
// compare two
if (iFirst == iSecond) {
return 0;
} else if (iFirst > iSecond) {
return 1;
} else {
return -1;
}
} catch (Exception e) {
return -2;
}
}
日期相差的天數
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設定日期格式
String nowTime =df.format(new Date());
for(Check openItem:bottomLeftList) {
if(null!=openItem) {
String Time = openItem.getDuration();
if(null!=Time) {
long duraLong = Long.parseLong(Time);
String createTime = openItem.getCreateTime();
try {
Date nowDate = df.parse(nowTime);
Date beginDate = df.parse(createTime);
long betweenTime =(nowDate.getTime()-beginDate.getTime())/(24*60*60*1000);
if(betweenTime>duraLong) { //大於指定日期不顯示
continue;
}else {
bottomLeftTimeList.add(openItem);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
java根據日期值得到中文漢字日期字串
/**
* @return 中文日期字串
*/
public static String getChineseDate() {
return getChineseDate(getDate());
}
/**
* @param number 數字.
* @return 中文數字
*/
public static String getChineseNum(String number) {
String chinese = "";
int x = Integer.parseInt(number);
switch (x) {
case 0:
chinese = "零";
break;
case 1:
chinese = "一";
break;
case 2:
chinese = "二";
break;
case 3:
chinese = "三";
break;
case 4:
chinese = "四";
break;
case 5:
chinese = "五";
break;
case 6:
chinese = "六";
break;
case 7:
chinese = "七";
break;
case 8:
chinese = "八";
break;
case 9:
chinese = "九";
break;
default:
}
return chinese;
}
/**
* @param date 給定日期.
* @return 2005年09月23日格式的日期
*/
public static String getChineseTwoDate(String date) {
if (date.length() < 10) {
return "";
} else {
String year = date.substring(0, 4); // 年
String month = date.substring(5, 7); // 月
String day = date.substring(8, 10); // 日
return year + "年" + month + "月" + day + "日";
}
}
/**
* @param date 日期值.
* @return 中文日期字串
*/
public static String getChineseDate(String date) {
if (date.length() < Integer.valueOf("10")) {
return "";
} else {
String year = date.substring(0, 4); // 年
String month = date.substring(5, 7); // 月
String day = date.substring(8, 10); // 日
String y1 = year.substring(0, 1); // 年 字元1
String y2 = year.substring(1, 2); // 年 字元1
String y3 = year.substring(2, 3); // 年 字元3
String y4 = year.substring(3, 4); // 年 字元4
String m2 = month.substring(1, 2); // 月 字元2
String d1 = day.substring(0, 1); // 日 1
String d2 = day.substring(1, 2); // 日 2
String cy1 = getChineseNum(y1);
String cy2 = getChineseNum(y2);
String cy3 = getChineseNum(y3);
String cy4 = getChineseNum(y4);
String cm2 = getChineseNum(m2);
String cd1 = getChineseNum(d1);
String cd2 = getChineseNum(d2);
String cYear = cy1 + cy2 + cy3 + cy4 + "年";
String cMonth = "月";
if (Integer.parseInt(month) > 9) {
cMonth = "十" + cm2 + cMonth;
} else {
cMonth = cm2 + cMonth;
}
String cDay = "日";
if (Integer.parseInt(day) > 9) {
cDay = cd1 + "十" + cd2 + cDay;
} else {
cDay = cd2 + cDay;
}
String chineseday = cYear + cMonth + cDay;
return chineseday;
}
}
/**
* @return 得到當前日期的星期數 : 例如 '星期一', '星期二'等.
*/
public static String getChineseDayOfWeek() {
return getChineseDayOfWeek(getDate());
}
/**
* @param strDate 指定日期字串.
* @return 指定日期的星期數
*/
public static String getChineseDayOfWeek(String strDate) {
Calendar calendar = getCalendar(strDate);
int week = calendar.get(Calendar.DAY_OF_WEEK);
String strWeek = "";
switch (week) {
case Calendar.SUNDAY:
strWeek = "星期日";
break;
case Calendar.MONDAY:
strWeek = "星期一";
break;
case Calendar.TUESDAY:
strWeek = "星期二";
break;
case Calendar.WEDNESDAY:
strWeek = "星期三";
break;
case Calendar.THURSDAY:
strWeek = "星期四";
break;
case Calendar.FRIDAY:
strWeek = "星期五";
break;
case Calendar.SATURDAY:
strWeek = "星期六";
break;
default:
strWeek = "星期一";
break;
}
return strWeek;
}
java 獲取上週一和週五的日期
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
public static Date getLastWeekMonday(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(getThisWeekMonday(date));
cal.add(Calendar.DATE, -7);
return cal.getTime();
}
public static Date getLastWeekFriday(Date date)
{
Calendar cal = Calendar.getInstance();
cal.setTime(getThisWeekMonday(date));
cal.add(Calendar.DATE, -3);
return cal.getTime();
}
public static String getLastWeekFridayStr(Date date)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(getThisWeekMonday(date));
cal.add(Calendar.DATE, -3);
return sdf.format(cal.getTime());
}
public static String getLastWeekMondayStr(Date date)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(getThisWeekMonday(date));
cal.add(Calendar.DATE, -7);
return sdf.format(cal.getTime());
}
public static Date getThisWeekMonday(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
// 獲得當前日期是一個星期的第幾天
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
if (1 == dayWeek) {
cal.add(Calendar.DAY_OF_MONTH, -1);
}
// 設定一個星期的第一天,按中國的習慣一個星期的第一天是星期一
cal.setFirstDayOfWeek(Calendar.MONDAY);
// 獲得當前日期是一個星期的第幾天
int day = cal.get(Calendar.DAY_OF_WEEK);
// 根據日曆的規則,給當前日期減去星期幾與一個星期第一天的差值
cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
return cal.getTime();
}
}