Java项目常用工具类【持续更新】

1、将内容输出到本地Txt文档中

/**
* 输出到本地Txt
* @param path 路径名
* @param fileName 文件名
*/
public static void outputTxt(String path, String fileName,String data) throws IOException {
    
    
   File file = new File(path);
   //判断目录是否存在,不存在创建
   if (!file.exists()) {
    
    
       file.mkdir();
   }
   // 配置了append:true,可进行追加
   BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path+"/"+fileName,true));  //在指定位置创建文件。
   bufferedWriter.write(data);
   bufferedWriter.close();  //关闭输入流
}

2、对数组中的集合进行排序,根据某一属性值

MyContainer myContainer1 = new MyContainer();
myContainer1.setFinishTime(3);
MyContainer myContainer2 = new MyContainer();
myContainer2.setFinishTime(1);
MyContainer myContainer3 = new MyContainer();
myContainer3.setFinishTime(2);
List<MyContainer> list = Arrays.asList(myContainer1,myContainer2,myContainer3);

System.out.println(list);

//根据finishTime进行排序(升序)
List<MyContainer> result1 = list.stream().sorted(Comparator.comparing(MyContainer::getFinishTime)).collect(Collectors.toList());
//根据finishTime进行排序(降序)
List<MyContainer> result2 = list.stream().sorted(Comparator.comparing(MyContainer::getFinishTime).reversed()).collect(Collectors.toList());

System.out.println(result);

3、日期计算

/**
 * 字符串转换成日期
 * 根据周数,获取开始日期、结束日期
 * 对日期的【秒】进行加/减
 * 对日期的【分钟】进行加/减
 * 对日期的【小时】进行加/减
 * 对日期的【天】进行加/减
 * 对日期的【周】进行加/减
 * 对日期的【月】进行加/减
 * 对日期的【年】进行加/减
 * 判断字符串是否为日期
 * 今天开始和今天结束时间
 */
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

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

/**
 * 日期处理
 *
 * @author Mark [email protected]
 */
public class DateUtils {
    
    
    /**
     * 时间格式(yyyy-MM-dd)
     */
    public final static String DATE_PATTERN = "yyyy-MM-dd";
    /**
     * 时间格式(yyyy-MM-dd HH:mm:ss)
     */
    public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

    /**
     * 日期格式化 日期格式为:yyyy-MM-dd
     *
     * @param date 日期
     * @return 返回yyyy-MM-dd格式日期
     */
    public static String format(Date date) {
    
    
        return format(date, DATE_PATTERN);
    }


    /**
     * 日期格式化 日期格式为:yyyy-MM-dd
     *
     * @param date    日期
     * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN
     * @return 返回yyyy-MM-dd格式日期
     */
    public static String format(Date date, String pattern) {
    
    
        if (date != null) {
    
    
            SimpleDateFormat df = new SimpleDateFormat(pattern);
            return df.format(date);
        }
        return null;
    }

    /**
     * 字符串转换成日期
     *
     * @param strDate 日期字符串
     * @param pattern 日期的格式,如:DateUtils.DATE_TIME_PATTERN
     */
    public static Date stringToDate(String strDate, String pattern) {
    
    
        if (StringUtils.isBlank(strDate)) {
    
    
            return null;
        }

        DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
        return fmt.parseLocalDateTime(strDate).toDate();
    }

    /**
     * 时间戳转成日期
     *
     * @param time    日期
     * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN
     * @return 返回yyyy-MM-dd格式日期
     */
    public static String format(Integer time, String pattern) {
    
    
        Date date = new Date((long) time * 1000);
        SimpleDateFormat df = new SimpleDateFormat(pattern);
        return df.format(date);
    }

    /**
     * 根据周数,获取开始日期、结束日期
     *
     * @param week 周期  0本周,-1上周,-2上上周,1下周,2下下周
     * @return 返回date[0]开始日期、date[1]结束日期
     */
    public static Date[] getWeekStartAndEnd(int week) {
    
    
        DateTime dateTime = new DateTime();
        LocalDate date = new LocalDate(dateTime.plusWeeks(week));

        date = date.dayOfWeek().withMinimumValue();
        Date beginDate = date.toDate();
        Date endDate = date.plusDays(6).toDate();
        return new Date[]{
    
    beginDate, endDate};
    }

    /**
     * 对日期的【秒】进行加/减
     *
     * @param date    日期
     * @param seconds 秒数,负数为减
     * @return 加/减几秒后的日期
     */
    public static Date addDateSeconds(Date date, int seconds) {
    
    
        DateTime dateTime = new DateTime(date);
        return dateTime.plusSeconds(seconds).toDate();
    }

    /**
     * 对日期的【分钟】进行加/减
     *
     * @param date    日期
     * @param minutes 分钟数,负数为减
     * @return 加/减几分钟后的日期
     */
    public static Date addDateMinutes(Date date, int minutes) {
    
    
        DateTime dateTime = new DateTime(date);
        return dateTime.plusMinutes(minutes).toDate();
    }

    /**
     * 对日期的【小时】进行加/减
     *
     * @param date  日期
     * @param hours 小时数,负数为减
     * @return 加/减几小时后的日期
     */
    public static Date addDateHours(Date date, int hours) {
    
    
        DateTime dateTime = new DateTime(date);
        return dateTime.plusHours(hours).toDate();
    }

    /**
     * 对日期的【天】进行加/减
     *
     * @param date 日期
     * @param days 天数,负数为减
     * @return 加/减几天后的日期
     */
    public static Date addDateDays(Date date, int days) {
    
    
        DateTime dateTime = new DateTime(date);
        return dateTime.plusDays(days).toDate();
    }

    /**
     * 对日期的【周】进行加/减
     *
     * @param date  日期
     * @param weeks 周数,负数为减
     * @return 加/减几周后的日期
     */
    public static Date addDateWeeks(Date date, int weeks) {
    
    
        DateTime dateTime = new DateTime(date);
        return dateTime.plusWeeks(weeks).toDate();
    }

    /**
     * 对日期的【月】进行加/减
     *
     * @param date   日期
     * @param months 月数,负数为减
     * @return 加/减几月后的日期
     */
    public static Date addDateMonths(Date date, int months) {
    
    
        DateTime dateTime = new DateTime(date);
        return dateTime.plusMonths(months).toDate();
    }

    /**
     * 对日期的【年】进行加/减
     *
     * @param date  日期
     * @param years 年数,负数为减
     * @return 加/减几年后的日期
     */
    public static Date addDateYears(Date date, int years) {
    
    
        DateTime dateTime = new DateTime(date);
        return dateTime.plusYears(years).toDate();
    }

    /**
     * 判断字符串是否为日期
     */
    public static boolean isDate(String date, String pattern) {
    
    
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        try {
    
    
            sdf.parse(date);
            return true;
        } catch (ParseException e) {
    
    
            return false;
        }
    }

    /**
     * 今天开始
     */
    public static Date todayStart() {
    
    
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        return calendar.getTime();
    }

    /**
     * 今天结束
     */
    public static Date todayEnd() {
    
    
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        return calendar.getTime();
    }
}


4 对象转Json格式

/**
* 对象转json
* @param o 对象
* @return result
*/
private static String objectToJson(Object o) throws IOException {
    
    
   ObjectMapper mapper = new ObjectMapper();
   String result = mapper.writeValueAsString(o);
   return result;
}

猜你喜欢

转载自blog.csdn.net/lafsca5/article/details/126033718