jdk8的LocalDate及把string转规定时间加减


 

package com.hainei.service.impl.wp.sbgl;

import com.hainei.common.constants.BaseConstant;
import com.hainei.common.enums.YesOrNo;
import com.hainei.common.token.JwtTokenUtil;
import com.hainei.mapper.base.BaseLogMapper;
import com.hainei.mapper.base.BaseUserMapper;
import com.hainei.mapper.wp.aqzd.WpFileMapper;
import com.hainei.mapper.wp.aqzd.WpGzzdglMapper;
import com.hainei.mapper.wp.aqzd.WpZdpsjlMapper;
import com.hainei.mapper.wp.fileManage.WpFileManageMapper;
import com.hainei.mapper.wp.sbgl.WpYfbyMapper;
import com.hainei.pojo.bo.wp.fileManage.WpFileManageBO;
import com.hainei.pojo.bo.wp.sbgl.WpYfbyBO;
import com.hainei.pojo.model.base.BaseLog;
import com.hainei.pojo.model.wp.fileManage.WpFileManage;
import com.hainei.pojo.model.wp.sbgl.WpYfby;
import com.hainei.pojo.vo.wp.fileManage.WpFileManageVO;
import com.hainei.pojo.vo.wp.sbgl.WpYfbyVO;
import com.hainei.service.base.BaseDataTableService;
import com.hainei.service.base.BaseOrganizationService;
import com.hainei.service.wp.aqzd.WpFileService;
import com.hainei.service.wp.sbgl.WpYfbyService;
import com.hainei.service.wp.zyaqgl.WpZypNumService;
import org.joda.time.LocalDate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;

import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.util.*;

/**
 * Created with IntelliJ IDEA.
 * User:wq
 * Date:2021/1/4
 * Time: 18:34
 * Description:
 */
@Service
@Transactional
public class WpYfbyServiceImpl implements WpYfbyService {
    @Autowired
    private WpYfbyMapper wpYfbyMapper;
    @Autowired
    private HttpServletRequest request;
    @Autowired
    private BaseOrganizationService organizationService;
    @Autowired
    private BaseDataTableService dataTableService;
    @Autowired
    private WpZypNumService zypNumService;
    @Autowired
    private BaseUserMapper userMapper;

    @Override
    public void addRecord(WpYfbyBO wpYfbyBO) {
        String token = request.getHeader(BaseConstant.ACCESS_TOKEN);
        String userId = JwtTokenUtil.getUserId(token);
        String id = UUID.randomUUID().toString().replaceAll("-", "");
        WpYfby wpYfby = new WpYfby();
        BeanUtils.copyProperties(wpYfbyBO, wpYfby);
        wpYfby.setId(id);
        //wpYfby.setFileNum(zypNumService.getZypNum("AQWJ"));
        wpYfby.setIsDeleted(YesOrNo.NO.type);
        wpYfby.setGmtCreatedOn(new Date());
        wpYfby.setGmtCreatedBy(userId);
        //添加数据权限表
        Set<String> organizationIdsByUserId = organizationService.getOrganizationIdsByUserId(userId);
        //3.插入数据权限
        dataTableService.insert(organizationIdsByUserId, id);
        wpYfbyMapper.insertSelective(wpYfby);
    }

    @Override
    public void deleteByIds(List<String> ids) {
        for (String id :
                ids) {
            WpYfby wpYfby = new WpYfby();
            wpYfby.setId(id);
            wpYfby.setIsDeleted(YesOrNo.YES.type);
            wpYfbyMapper.updateByPrimaryKeySelective(wpYfby);
        }
    }

    @Override
    public void updateRecord(WpYfbyBO wpYfbyBO) {
        String token = request.getHeader(BaseConstant.ACCESS_TOKEN);
        String userId = JwtTokenUtil.getUserId(token);
        WpYfby wpYfby = new WpYfby();
        wpYfby.setGmtUpdatedBy(userId);
        BeanUtils.copyProperties(wpYfbyBO, wpYfby);
        wpYfbyMapper.updateByPrimaryKeySelective(wpYfby);
    }

    @Override
    public WpYfbyVO getById(String id) {
        WpYfbyVO byId = wpYfbyMapper.getById(id);
        putWfValue(byId);
        return byId;
    }

    @Override
    public List<WpYfbyVO> listAll(WpYfbyBO wpYfbyBO) {
        String token = request.getHeader(BaseConstant.ACCESS_TOKEN);
        String userId = JwtTokenUtil.getUserId(token);
        wpYfbyBO.setGmtCreatedBy(userId);
        List<WpYfbyVO> wpFileManageVOS = wpYfbyMapper.listAllRecord(wpYfbyBO);
        wpFileManageVOS.stream().filter(p -> p != null).forEach(p -> putWfValue(p));
        return wpFileManageVOS;
    }



    void putWfValue(WpYfbyVO yfbyVO) {
        if(yfbyVO !=null){
           // fileManageVO.setFj(fileMapper.getByKeys(fileManageVO.getId(), (byte) 1));
            //fileManageVO.setGmtCreatedBy(userMapper.getById(fileManageVO.getGmtCreatedBy()).getName());
            if(yfbyVO.getZrr()!=null&&!"".equals(yfbyVO.getZrr())){
                yfbyVO.setZrr(userMapper.getById(yfbyVO.getZrr()).getName());
            }
            if(yfbyVO.getByrq()!=null&!"".equals(yfbyVO.getByrq())){
                yfbyVO.setXcbyzq(getXcbyzq(yfbyVO.getByrq(),yfbyVO.getZxzqdw(),yfbyVO.getZxzq()));
            }

        }
    }

    /**
     * 下次保养日期
     * @param byrq
     * @param zxzqdw
     * @return
     */
    String getXcbyzq(String byrq,String zxzqdw,Integer zxzq ){
        String s=null;
        java.time.LocalDate localDate = null;
        if(byrq != null && !"".equals(byrq)&& zxzqdw != null
                &&  !"".equals(zxzqdw) && zxzq != null&& !"".equals(zxzq)){
            LocalDate parse = LocalDate.parse(byrq);
           s= transLocalDate(parse, zxzq, zxzqdw);
        }
        return s;
    }

    String transLocalDate(LocalDate parse,Integer zxzq,String zxzqdw){
        Integer year = null;
        Integer month=null;
        Integer day= null;
        year = parse.getYear();
        month =parse.getMonthOfYear();
        day = parse.getDayOfMonth();
        switch (zxzqdw){
            case "":
                 year = parse.getYear()+ zxzq;
                break;
            case "":
                month = parse.getMonthOfYear()+ zxzq; break;
            case "":
                day = parse.getDayOfMonth()+ zxzq;
            case "":
                 month = parse.getMonthOfYear()+ zxzq*3;
                break;
            default:
                throw new IllegalStateException("Unexpected value: " + zxzqdw);
        }
        java.time.LocalDate result = java.time.LocalDate.of(year, month, day);
        return result.toString();
    }

    Date dateFormate(String byrq,String format){
        Date date = null;
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        try {
             date = sdf.parse(byrq);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    String DateStr(Date date){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String dateStr = sdf.format(date);
        return dateStr;
    }
}

 

 

 

 

 /**
     * 下次保养日期
     * @param byrq
     * @param zxzqdw
     * @return
     */
    String getXcbyzq(String byrq,String zxzqdw,Integer zxzq ){
        String s=null;
        java.time.LocalDate localDate = null;
        if(byrq != null && !"".equals(byrq)&& zxzqdw != null
                &&  !"".equals(zxzqdw) && zxzq != null&& !"".equals(zxzq)){
            LocalDate parse = LocalDate.parse(byrq);
           s= transLocalDate(parse, zxzq, zxzqdw);
        }
        return s;
    }

    String transLocalDate(LocalDate parse,Integer zxzq,String zxzqdw){
        Integer year = null;
        Integer month=null;
        Integer day= null;
        year = parse.getYear();
        month =parse.getMonthOfYear();
        day = parse.getDayOfMonth();
        switch (zxzqdw){
            case "":
                 year = parse.getYear()+ zxzq;
                break;
            case "":
                month = parse.getMonthOfYear()+ zxzq; break;
            case "":
                day = parse.getDayOfMonth()+ zxzq;
            case "":
                 month = parse.getMonthOfYear()+ zxzq*3;
                break;
            default:
                throw new IllegalStateException("Unexpected value: " + zxzqdw);
        }
        java.time.LocalDate result = java.time.LocalDate.of(year, month, day);
        return result.toString();
    }

 

 

 

 

 

 

 

JDK8时间日期类LocalDateTime

  • LocalDate 表示日期(年月日)
  • LocalTime 表示时间(时分秒)
  • LocalDateTime 表示时间+ 日期 (年月日时分秒)

LocalDateTime创建方法 (应用)
方法名
public static LocalDateTime now()
获取当前系统时间
public static LocalDateTime of (年, 月 , 日, 时, 分, 秒)
使用指定年月日和时分秒初始化一个LocalDateTime对象

public class JDK8DateDemo2 { public static void main(String[] args) { //获取当前系统时间 LocalDateTime now = LocalDateTime.now(); System.out.println(now); //使用指定年月日和时分秒初始化一个LocalDateTime对象 LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 11, 11, 11); System.out.println(localDateTime); } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

LocalDateTime格式化和解析 (应用)
方法名说明
public String format (指定格式)
把一个LocalDateTime格式化成为一个字符串

public LocalDateTime parse (准备解析的字符串, 解析格式)
把一个日期字符串解析成为一个LocalDateTime对象

public static DateTimeFormatter ofPattern(String pattern)
使用指定的日期模板获取一个日期格式化器DateTimeFormatter对象

public class JDK8DateDemo5 { public static void main(String[] args) { //method1(); //method2(); } private static void method2() { //public static LocalDateTime parse (准备解析的字符串, 解析格式) 把一个日期字符串解析成为一个LocalDateTime对象 String s = "2020年11月12日 13:14:15"; DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); LocalDateTime parse = LocalDateTime.parse(s, pattern); System.out.println(parse); } private static void method1() { LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 12, 13, 14, 15); System.out.println(localDateTime); //public String format (指定格式) 把一个LocalDateTime格式化成为一个字符串 DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); String s = localDateTime.format(pattern); System.out.println(s); } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

LocalDateTime减少或者增加时间的方法 (应用)
方法名
public LocalDateTime minusYears (long years)
减去或者添加年
public LocalDateTime minusMonths(long months)
减去或者添加月
public LocalDateTime minusDays(long days)
减去或者添加日
public LocalDateTime minusHours(long hours)
减去或者添加时
public LocalDateTime minusMinutes(long minutes)
减去或者添加分
public LocalDateTime minusSeconds(long seconds)
减去或者添加秒
public LocalDateTime minusWeeks(long weeks)
减去或者添加周

public class JDK8DateDemo7 { public static void main(String[] args) { //public LocalDateTime minusYears (long years) 减去或者添加年 LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 13, 14, 15); //LocalDateTime newLocalDateTime = localDateTime.minusYears(1); //System.out.println(newLocalDateTime); LocalDateTime newLocalDateTime = localDateTime.minusYears(-1); System.out.println(newLocalDateTime); } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

LocalDateTime修改方法 (应用)
方法名
public LocalDateTime withYear(int year)

直接修改年
public LocalDateTime withMonth(int month)
直接修改月
public LocalDateTime withDayOfMonth(int dayofmonth)
直接修改日期(一个月中的第几天)
public LocalDateTime withDayOfYear(int dayOfYear)
直接修改日期(一年中的第几天)
public LocalDateTime withHour(int hour)
直接修改小时
public LocalDateTime withMinute(int minute)
直接修改分钟
public LocalDateTime withSecond(int second)
直接修改秒

/** * JDK8 时间类修改时间 */ public class JDK8DateDemo8 { public static void main(String[] args) { //public LocalDateTime withYear(int year) 修改年 LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 13, 14, 15); // LocalDateTime newLocalDateTime = localDateTime.withYear(2048); // System.out.println(newLocalDateTime); LocalDateTime newLocalDateTime = localDateTime.withMonth(20); System.out.println(newLocalDateTime); } }


https://blog.csdn.net/fengzheng_00/article/details/108353252


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM