| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- package com.template.common.utils;
- import org.springframework.stereotype.Component;
- import java.sql.Timestamp;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
- /**
- * <p>Title: DateUtils</p>
- * <p>Description:日期工具类 </p>
- *
- * @author fengyong
- * @date 2018年9月7日
- */
- @Component // 加此注解是把此类实例化spring容器中
- public class DateUtils {
- /**
- * 默认日期格式
- */
- public static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
- /**
- * 如2018 0901 232211(年月日时分秒)
- *
- * @return
- */
- public String yyyyMMddHHmmss() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- return sdf.format(Calendar.getInstance().getTime());
- }
- /**
- * 如20180901
- *
- * @return
- */
- public static String getYYYYMMdd() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- return sdf.format(Calendar.getInstance().getTime());
- }
- /**
- * 如180901
- * @return
- */
- public String getYYMMdd() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
- return sdf.format(Calendar.getInstance().getTime());
- }
- /**
- * 如201809
- * @return
- */
- public String getYYYYMM() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
- return sdf.format(Calendar.getInstance().getTime());
- }
- /**
- * 如 2018/02/11
- * @return
- */
- public String getQueryEndDate() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- return sdf.format(Calendar.getInstance().getTime());
- }
- /**
- * 如 2018/02/11
- * @return
- */
- public String getQueryStartDate() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.DAY_OF_YEAR, -30);
- return sdf.format(cal.getTime());
- }
- /**
- * 如 2018/02/11 12:30:00
- * @return
- */
- public static String getQueryEndTime() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- return sdf.format(Calendar.getInstance().getTime());
- }
- /**
- * 如 2018/02/11
- * @return
- */
- public String getQueryStartTime() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.DAY_OF_YEAR, -30);
- return sdf.format(cal.getTime());
- }
- public String getQueryTwoAgoDate() {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.DAY_OF_YEAR, -2);
- return sdf.format(cal.getTime());
- }
- /**
- * 字符串转换成日期
- *
- * @param str 字符串
- * @param format 日期格式
- * @return 日期
- */
- public static Date str2Date(String str, String format) {
- if (null == str || "".equals(str)) {
- return null;
- }
- // 如果没有指定字符串转换的格式,则用默认格式进行转换
- if (null == format || "".equals(format)) {
- format = DEFAULT_FORMAT;
- }
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- Date date = null;
- try {
- date = sdf.parse(str);
- return date;
- } catch (ParseException e) {
- }
- return null;
- }
- /**
- * @param date 日期
- * @param format 日期格式
- * @return 字符串
- */
- public static String date2Str(Date date, String format) {
- if (null == date) {
- return null;
- }
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- return sdf.format(date);
- }
- /**
- * 时间戳转换为字符串
- * @param time
- * @return
- */
- public static String timestamp2Str(Timestamp time) {
- Date date = new Date(time.getTime());
- return date2Str(date, DEFAULT_FORMAT);
- }
- /**
- * 字符串转换为时间
- * @param str
- * @return
- */
- public static Timestamp str2Timestamp(String str) {
- Date date = str2Date(str, DEFAULT_FORMAT);
- return new Timestamp(date.getTime());
- }
- /**
- * 字符串转换为时间
- * @param str
- * @return
- */
- public static Timestamp str2Timestamp(String str, String formatStr) {
- if (null == str) {
- return null;
- }
- Date date = str2Date(str, formatStr);
- return new Timestamp(date.getTime());
- }
- /**
- * 获取某年第一天日期
- * @param year 年份
- * @return Date
- */
- public static Date getYearFirst(int year) {
- Calendar calendar = Calendar.getInstance();
- calendar.clear();
- calendar.set(Calendar.YEAR, year);
- Date currYearFirst = calendar.getTime();
- return currYearFirst;
- }
- /**
- * 获取某年最后一天日期
- * @param year 年份
- * @return Date
- */
- public static Date getYearLast(int year) {
- Calendar calendar = Calendar.getInstance();
- calendar.clear();
- calendar.set(Calendar.YEAR, year);
- calendar.roll(Calendar.DAY_OF_YEAR, -1);
- Date currYearLast = calendar.getTime();
- return currYearLast;
- }
- @SuppressWarnings("static-access")
- public static Date getnextLast(String datetime, int year) {
- Calendar calendar = new GregorianCalendar();
- Date date = null;
- if (datetime.length() > 7) {
- date = str2Date(datetime, "yyyy-MM-dd");
- } else {
- date = str2Date(datetime, "yyyy-MM");
- }
- calendar.setTime(date);
- calendar.add(calendar.YEAR, year);// 把日期往后增加一年.整数往后推,负数往前移动
- date = calendar.getTime();
- return date;
- }
- public static String getrightDate(String datetime, int year) {
- String date = "";
- String years = datetime.substring(0, 4);
- String dates = datetime.substring(4, datetime.length());
- Integer s = new Integer(years) + year;
- date = s + dates;
- return date;
- }
- public static void main(String[] args) {
- logger.info(getrightDate("2018-09", 4));
- logger.info(date2Str(getnextLast("2018-09", 4), "yyyy-MM"));
- }
- }
|