java中常用的日期工具类

java中常用的日期工具类

日期相关的类:
在这里插入图片描述

package net.yto.ofclacct.core.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import org.joda.time.DateTime;

import net.ytoframework.kernel.common.util.DateUtil;

/**
 * <pre>
 * 名称: DateUtils
 * 描述: 日期工具类
 * </pre>
 * @author sxy
 */

public class DateUtils {
	
//private static final Log logger = LogFactory.getLog(DateUtils.class);


public static final String YYYYMMDD = "yyyy-MM-dd";


public static final String YYYYMMDD_ZH = "yyyy年MM月dd日";


public static final int FIRST_DAY_OF_WEEK = Calendar.MONDAY; // 中国周一是一周的第一天

/**
 * 默认时间格式:yyyy-MM-dd HH:mm:ss
 */
public static final String DEFAULT_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";


/** 周一 */
public static final int FIRST_OF_WEEK = 1;
/** 周二 */
public static final int SECOND_OF_WEEK = 2;
/** 周三 */
public static final int THIRD_OF_WEEK = 3;
/** 周四 */
public static final int FOURTH_OF_WEEK = 4;
/** 周五 */
public static final int FIFTH_OF_WEEK = 5;
/** 周六 */
public static final int SIXTH_OF_WEEK = 6;
/** 周日 */
public static final int SEVENTH_OF_WEEK = 7;

 /**
    * 将多种字符串格式 解析为Date
    *
    */

public static Date parseDate(String inputDate) {
Date outputDate = null;
String[] possibleDateFormats =
{
“yyyy/MM/dd HH:mm:ss”,
“yyyy/MM/dd HH:mm”,
“yyyy/MM/dd”,
“yyyy-MM-dd HH:mm:ss”,
“yyyy-MM-dd HH:mm”,
“yyyy-MM-dd”,
“HH:mm:ss”,
“HH:mm”
};

 try {
     outputDate = org.apache.commons.lang3.time.DateUtils.parseDate(inputDate, possibleDateFormats);
 } catch (ParseException e) {
     e.printStackTrace();
 }
 return outputDate;

}

 /**
* 星期一转换为周一
*
*/
 public static String transWeek(final String day) {
	 
	 return day.replace("星期", "周");
 }

 /**
 * 年月日转换为星期
 *
 */
public static String getWeek(final String dateStr,final String pattern) {
	
	SimpleDateFormat df = new SimpleDateFormat(pattern);
	Date date = null;
	try {
		date = df.parse(dateStr);
	} catch (ParseException e) {		
		//log.info("SimpleDateFormat解析时间出错");
		e.printStackTrace();
	}
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return new SimpleDateFormat("E",Locale.CHINESE).format(c.getTime());        
}


/**
 * 通过日期字符串yyyy-MM-dd HH:mm:ss 获取星期
 *
 * @param datestr 日期字符串
 * @return 星期
 * @throws Exception 
 */
public static String getWeekday(final String datestr,final String pattern) throws Exception{
    try {
    	SimpleDateFormat df = new SimpleDateFormat(pattern);
    	Date date = df.parse(datestr);
    	Calendar cal = Calendar.getInstance();
    	cal.setTime(date);
    	int weakNum = cal.get(Calendar.DAY_OF_WEEK)-1;
        switch (weakNum) {
            case FIRST_OF_WEEK:
                return "周一";
            case SECOND_OF_WEEK:
                return "周二";
            case THIRD_OF_WEEK:
                return "周三";
            case FOURTH_OF_WEEK:
                return "周四";
            case FIFTH_OF_WEEK:
                return "周五";
            case SIXTH_OF_WEEK:
                return "周六";
            default:
                return "周日";
        }
    } catch (Exception ex) {
        throw ex;
    }
}

/**
 *Date转换为String
 *指定日期格式
 *如: "HH:mm"
 */

/**
 *String转换为Date
 *
 */

public static Date stringToDate(final String dateStr,final String pattern) {
	
	SimpleDateFormat df = new SimpleDateFormat(pattern);
	Date date = null;
	try {
		date = df.parse(dateStr);
	} catch (ParseException e) {		
		//log.info("SimpleDateFormat解析时间出错");
		e.printStackTrace();
	}
	return date;
}
	

/**
 *比较日期大小
 *指定日期格式
 */



/**
* 根据日期取得对应周周日日期
* 
* @param date
* @return
*/
public static Date getSundayOfWeek(Date date) {
Calendar sunday = Calendar.getInstance();
sunday.setTime(date);
sunday.setFirstDayOfWeek(FIRST_DAY_OF_WEEK);
sunday.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return sunday.getTime();
}

/**
 * 获取中文前天,昨天,今天,明天,和后天
 * @param datestr
 * @param pattern
 * @return
 * @throws Exception 
 */
public static String getChineseDay(final String datestr,final String pattern) {
    Date date = DateUtil.toDate(datestr, pattern);
    int offSet = Calendar.getInstance().getTimeZone().getRawOffset();
    long today = (System.currentTimeMillis()+offSet)/86400000;//1天折算成毫秒数
    long start = (date.getTime()+offSet)/86400000;
    int chineseDayNum = (int)(start - today);
    switch (chineseDayNum) {
        case -2:
            return "前天";
        case -1:
            return "昨天";
        case 0:
            return "今天";
        case 1:
            return "明天";
        case 2:
            return "后天";
        default:
            return "";
    }
}    

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.hexiang.utils; import java.text.SimpleDateFormat; import java.util.*; public class CalendarUtil { public static void main(String args[]) { System.out.println("First day of week is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getFirstDateByWeek(new Date()))); System.out.println("Last day of week is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getLastDateByWeek(new Date()))); System.out.println("First day of month is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getFirstDateByMonth(new Date()))); System.out.println("Last day of month is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getLastDateByMonth(new Date()))); } /** * 获得所在星期的第一天 */ public static Date getFirstDateByWeek(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); int today = now.get(Calendar.DAY_OF_WEEK); int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 now.set(Calendar.DATE, first_day_of_week); return now.getTime(); } /** * 获得所在星期的最后一天 */ public static Date getLastDateByWeek(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); int today = now.get(Calendar.DAY_OF_WEEK); int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 int last_day_of_week = first_day_of_week + 6; // 星期日 now.set(Calendar.DATE, last_day_of_week); return now.getTime(); } /** * 获得所在月份的最后一天 * @param 当前月份所在的时间 * @return 月份的最后一天 */ public static Date getLastDateByMonth(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); now.set(Calendar.MONTH, now.get(Calendar.MONTH) + 1); now.set(Calendar.DATE, 1); now.set(Calendar.DATE, now.get(Calendar.DATE) - 1); now.set(Calendar.HOUR, 11); now.set(Calendar.MINUTE, 59); now.set(Calendar.SECOND, 59); return now.getTime(); } /** * 获得所在月份的第一天 * @param 当前月份所在的时间 * @return 月份的第一天 */ public static Date getFirstDateByMonth(Date date) { Calendar now = Calendar.getInstance(); now.setTime(date); now.set(Calendar.DATE, 0); now.set(Calendar.HOUR, 12); now.set(Calendar.MINUTE, 0); now.set(Calendar.SECOND, 0); return now.getTime(); } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值