java时间格式类,Java常用时间格式转换类

package com.jeesite.modules.util;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

import java.util.Calendar;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

public class DateUtil {

public static String minusDays(String date, int days){

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

LocalDate localDate = LocalDate.parse(date, formatter);

LocalDate prevDay = localDate.minusDays(days);

return prevDay.format(formatter);

}

/**

* @Description: 获取当前时间字符串

* @Author: psw

* @CreateDate: 2018/10/12 15:45

* @UpdateUser: psw

* @UpdateDate: 2018/10/12 15:45

* @UpdateRemark: 修改内容

*/

public static String currentDate(){

//我要获取当前的日期

Date date = new Date();

//设置要获取到什么样的时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//获取String类型的时间

String createdate = sdf.format(date);

return createdate;

}

/**

* 获得指定日期的前一天

* @param specifiedDay

* @return

* @throws Exception

*/

public static String getSpecifiedDayBefore(String specifiedDay){

//SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

Calendar c = Calendar.getInstance();

Date date=null;

try {

date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);

} catch (ParseException e) {

e.printStackTrace();

}

c.setTime(date);

int day=c.get(Calendar.DATE);

c.set(Calendar.DATE,day-1);

String dayBefore=new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());

return dayBefore;

}

// string类型转换为date类型

// strTime要转换的string类型的时间,formatType要转换的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日

// HH时mm分ss秒,

// strTime的时间格式必须要与formatType的时间格式相同

public static Date stringToDate(String strTime) {

Date date = null;

try {

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

date = formatter.parse(strTime);

return date;

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}

/**

* 日期转换为字符串

* @param date

* @return

*/

public static String DateToStr(Date date) {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

String str = format.format(date);

return str;

}

/**

* 获取一周中的第一天和最后一天

* @return

*/

public static Map getWeekMonAndSun() {

Map map = new HashMap();

Calendar cal = Calendar.getInstance();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

cal.add(Calendar.DATE, -1);

cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 获取本周一的日期

map.put("monday", df.format(cal.getTime()));

// 这种输出的是上个星期周日的日期,因为老外那边把周日当成第一天

cal.add(Calendar.DATE, -1);

cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

// 增加一个星期,才是我们中国人理解的本周日的日期

cal.add(Calendar.WEEK_OF_YEAR, 1);

map.put("sunday", df.format(cal.getTime()));

return map;

}

/**

* 上一周的第一天

* @return

*/

public static String getMonday() {

Calendar cal = Calendar.getInstance();

cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天

cal.add(Calendar.DATE, -1*7);

cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);

String monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());

return monday;

}

/**

* 上一周的最后一天

*

*/

public static String getSunday() {

Calendar cal = Calendar.getInstance();

cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天

cal.add(Calendar.DATE, -1*7);

cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

String sunday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());

return sunday;

}

/**

* 上一周的第一天

* @return

*/

public static String getBeforeLastMonday() {

Calendar cal = Calendar.getInstance();

cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天

cal.add(Calendar.DATE, -2*7);

cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);

String monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());

return monday;

}

/**

* 上一周的最后一天

*

*/

public static String getBeforeLastSunday() {

Calendar cal = Calendar.getInstance();

cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天

cal.add(Calendar.DATE, -2*7);

cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

String sunday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());

return sunday;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值