Commit 11fc2225 by 王力

Merge branch 'feature_timeutil' into 'master'

Feature timeutil

See merge request !117
2 parents e633dcd8 2fac4207
package com.dituhui.pea.order.common;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class TimeUtils {
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_NO_GAP_FORMAT = "yyyyMMdd";
public static final String DATE_GAP_FORMAT = "yyyy-MM-dd";
public static final String TIME_HH_MM_FORMAT = "HHmm";
public static final String IsoTimestamp2DateTime(Timestamp timestamp) {
// Timestamp转换为日期时间字符串
LocalDateTime localDateTime = timestamp.toLocalDateTime();
return localDateTime.format(DateTimeFormatter.ofPattern(DATE_TIME_FORMAT));
}
public static final Timestamp IsoDateTime2Timestamp(String datetime) {
// 将日期时间字符串转换为Timestamp
LocalDateTime localDateTime = LocalDateTime.parse(datetime, DateTimeFormatter.ofPattern(DATE_TIME_FORMAT));
return Timestamp.valueOf(localDateTime);
}
public static final String timestamp2DateTime(Timestamp timestamp, String pattern) {
// Timestamp转换为日期时间字符串
LocalDateTime localDateTime = timestamp.toLocalDateTime();
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}
public static final Timestamp dateTime2Timestamp(String datetime, String pattern) {
// 将日期时间字符串转换为Timestamp
LocalDateTime localDateTime = LocalDateTime.parse(datetime, DateTimeFormatter.ofPattern(pattern));
return Timestamp.valueOf(localDateTime);
}
public static final LocalDate IsoDate2LocalDate(String s) {
return LocalDate.parse(s, DateTimeFormatter.ofPattern(DATE_GAP_FORMAT));
}
public static final LocalDate date2LocalDate(String s, String pattern) {
return LocalDate.parse(s, DateTimeFormatter.ofPattern(pattern));
}
public static final LocalDate addDays(LocalDate date, long days) {
return date.plusDays(days);
}
public static final LocalDate subDays(LocalDate date, long days) {
return date.minusDays(days);
}
}
......@@ -2,6 +2,7 @@ package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.DispatchEngineerOrderListResp;
import com.dituhui.pea.order.dto.DispatchOrderListResp;
......@@ -75,7 +76,7 @@ public class DispatchServiceImpl implements DispatchService {
String key = String.format("%s%s%s", o.getBrand(), o.getType(), o.getSkill());
item.setDuration(skillTakeTime.getOrDefault(key, 30));
String time = this.timestamp2Datetime(o.getExpectTimeBegin(), "HH:mm");
String time = TimeUtils.timestamp2DateTime(o.getExpectTimeBegin(), "HH:mm");
String timeSlot = this.parseTimeSlot(o.getExpectTimeBegin());
item.setIntentionTime(String.format("%s/%s", time, timeSlot));
......@@ -166,7 +167,7 @@ public class DispatchServiceImpl implements DispatchService {
String key = String.format("%s%s%s", o.getBrand(), o.getType(), o.getSkill());
item.setDuration(skillTakeTime.getOrDefault(key, 30));
String time = this.timestamp2Datetime(o.getExpectTimeBegin(), "HH:mm");
String time = TimeUtils.timestamp2DateTime(o.getExpectTimeBegin(), "HH:mm");
String timeSlot = this.parseTimeSlot(o.getExpectTimeBegin());
item.setIntentionTime(String.format("%s/%s", time, timeSlot));
......@@ -355,13 +356,8 @@ public class DispatchServiceImpl implements DispatchService {
return Timestamp.valueOf(date + " " + time);
}
private String timestamp2Datetime(Timestamp t, String pattern) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(pattern);
return df.format(t.toLocalDateTime());
}
private String parseTimeSlot(Timestamp t) {
String h = this.timestamp2Datetime(t, "HH");
String h = TimeUtils.timestamp2DateTime(t, "HH");
Integer hour = Integer.parseInt(h);
if (hour <= 12) {
return "上午";
......
......@@ -2,6 +2,7 @@ package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.*;
import com.dituhui.pea.order.entity.*;
......@@ -369,7 +370,7 @@ public class EngineerServiceImpl implements EngineerService {
skill.setEngineerCode(e.getEngineerCode());
skill.setEngineerName(e.getName());
skill.setGroupName(groupNames.getOrDefault(e.getGroupId(), ""));
skill.setUpdateTime(this.Timestamp2Datetime(e.getUpdateTime(), "yyyy-MM-dd hh:mm:ss"));
skill.setUpdateTime(TimeUtils.IsoTimestamp2DateTime(e.getUpdateTime()));
// 获取一个工程师的技能列表
skill.setCategoryIds(engineerSkills.getOrDefault(e.getEngineerCode(), emptySkills));
......@@ -458,11 +459,6 @@ public class EngineerServiceImpl implements EngineerService {
return (age <= 0) ? "" : Integer.toString(age);
}
private String Timestamp2Datetime(Timestamp t, String pattern) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(pattern);
return df.format(t.toLocalDateTime());
}
@Override
public Result<?> getEngineersGanttList(EngineersGanttReqDTO reqDTO) {
// 按日期返回技术员们当天的服务甘特图,不需要翻页
......
package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.EnginnerTimelineResp;
import com.dituhui.pea.order.entity.*;
......@@ -162,7 +163,7 @@ public class EngineerTimelineServiceImpl implements EngineerTimelineService {
location = locations.get(t.getOrderId());
}
item.setTitle(title);
item.setTime(this.Timestamp2Datetime(t.getHappen()));
item.setTime(TimeUtils.IsoTimestamp2DateTime(t.getHappen()));
item.setStatus(1);
item.setText(text);
......@@ -181,7 +182,7 @@ public class EngineerTimelineServiceImpl implements EngineerTimelineService {
index += 1;
EnginnerTimelineResp.DynamicItem item = new EnginnerTimelineResp.DynamicItem();
item.setTitle(String.format("第%d单出发", index));
item.setTime(this.Timestamp2Datetime(o.getExpectStartTime()));
item.setTime(TimeUtils.IsoTimestamp2DateTime(o.getExpectStartTime()));
item.setStatus(0);
item.setText(String.format("%d", index));
item.setLocation(locations.get(o.getOrderId()));
......@@ -191,9 +192,4 @@ public class EngineerTimelineServiceImpl implements EngineerTimelineService {
// 根据items的time升序排序
return items.stream().sorted(Comparator.comparing(EnginnerTimelineResp.DynamicItem::getTime)).collect(Collectors.toList());
}
private String Timestamp2Datetime(Timestamp t) {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return df.format(t.toLocalDateTime());
}
}
......@@ -2,6 +2,7 @@ package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.EngineerInfoMPDao;
import com.dituhui.pea.order.dao.OrderAppointmentMPDao;
import com.dituhui.pea.order.dao.OrderRequestMPDao;
......@@ -45,7 +46,7 @@ public class OrderAssignImpl implements OrderAssign {
throw new BusinessException("订单不存在");
}
String date = this.Timestamp2Datetime(order.getExpectTimeBegin(), "yyyy-MM-dd");
String date = TimeUtils.timestamp2DateTime(order.getExpectTimeBegin(), TimeUtils.DATE_GAP_FORMAT);
// 获取group内的小组成员
List<EngineerInfo> engineers = this.queryEngineerInfoByGroupId(order.getOrgGroupId());
......@@ -101,7 +102,7 @@ public class OrderAssignImpl implements OrderAssign {
EngineerInfo engineer = this.queryEngineerInfo(engineerCode);
String date = this.Timestamp2Datetime(order.getExpectTimeBegin(), "yyyy-MM-dd");
String date = TimeUtils.timestamp2DateTime(order.getExpectTimeBegin(), TimeUtils.DATE_GAP_FORMAT);
List<OrderAppointment> orderAppointments = this.queryOrderAppointments(engineerCode, date);
OrderRecommend recommend = new OrderRecommend();
......@@ -168,19 +169,14 @@ public class OrderAssignImpl implements OrderAssign {
List<OrderAssignRecommendResp.Timeline> items = new ArrayList<>();
for(OrderAppointment order: orders){
OrderAssignRecommendResp.Timeline item = new OrderAssignRecommendResp.Timeline();
item.setStartTime(this.Timestamp2Datetime(order.getExpectStartTime(), "HH:mm"));
item.setEndTime(this.Timestamp2Datetime(order.getExpectEndTime(), "HH:mm"));
item.setStartTime(TimeUtils.timestamp2DateTime(order.getExpectStartTime(), "HH:mm"));
item.setEndTime(TimeUtils.timestamp2DateTime(order.getExpectEndTime(), "HH:mm"));
item.setType(order.getStatus());
items.add(item);
}
return items;
}
private String Timestamp2Datetime(Timestamp t, String pattern) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(pattern);
return df.format(t.toLocalDateTime());
}
}
@Data
......
package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.*;
import com.dituhui.pea.order.entity.*;
......@@ -132,7 +133,7 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
// 获取title
String title = engineerName;
if (!lastSubOrderId.equals(subOrderId)) {
title = String.format("%s_%s", engineerName, this.Timestamp2Datetime(o.getExpectStartTime(), "yyyyMMdd"));
title = String.format("%s_%s", engineerName, TimeUtils.timestamp2DateTime(o.getExpectStartTime(), TimeUtils.DATE_NO_GAP_FORMAT));
}
OrderAppointmentListResp.OrderAppointment item = new OrderAppointmentListResp.OrderAppointment();
......@@ -345,7 +346,7 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
OrderServiceDynamicsResp.Dynamics d = new OrderServiceDynamicsResp.Dynamics();
d.setTitle(o.getEvent());
d.setSubTitle(String.format("操作人: %s", o.getOperatorName()));
d.setTime(this.Timestamp2Datetime(o.getHappen(), "yyyy-mm-dd HH:MM"));
d.setTime(TimeUtils.IsoTimestamp2DateTime(o.getHappen()));
d.setMemo(o.getMemo());
dynamics.add(d);
}
......@@ -384,9 +385,4 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
item.setParams(params);
return item;
}
private String Timestamp2Datetime(Timestamp t, String pattern) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(pattern);
return df.format(t.toLocalDateTime());
}
}
package com.dituhui.pea.order.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.OrderAppointmentMPDao;
import com.dituhui.pea.order.dao.OrderRequestMPDao;
import com.dituhui.pea.order.dto.OrderServiceList;
......@@ -10,15 +13,11 @@ import com.dituhui.pea.order.dto.OrderServiceListResp;
import com.dituhui.pea.order.entity.OrderAppointment;
import com.dituhui.pea.order.entity.OrderRequest;
import com.dituhui.pea.order.service.OrderServiceListService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.netty.util.internal.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
......@@ -42,8 +41,8 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
Page<OrderRequest> pg = new Page(page, size);
LambdaQueryWrapper<OrderRequest> lqw = new LambdaQueryWrapper<>();
lqw.ge(OrderRequest::getExpectTimeBegin, this.getTimestampFromDate(startDate)); //预约开始日期
lqw.le(OrderRequest::getExpectTimeBegin, this.getTimestampFromDate(endDate)); //预约结束日期
lqw.ge(OrderRequest::getExpectTimeBegin, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", startDate))); //预约开始日期
lqw.le(OrderRequest::getExpectTimeBegin, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", endDate))); //预约结束日期
lqw.eq(!StringUtil.isNullOrEmpty(appointmentStatus), OrderRequest::getAppointmentStatus, appointmentStatus); //指派状态
lqw.eq(!StringUtil.isNullOrEmpty(type), OrderRequest::getType, type); //设备类型
lqw.eq(!StringUtil.isNullOrEmpty(brand), OrderRequest::getBrand, brand); //品牌
......@@ -56,7 +55,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
//获取工单订单号列表
List<String> orderIds = new ArrayList<>();
for(OrderRequest r: records) {
for (OrderRequest r : records) {
orderIds.add(r.getOrderId());
}
// 获取工程师姓名列表
......@@ -64,7 +63,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
List<String> names;
List<OrderServiceList> content = new ArrayList<>();
for (OrderRequest o: records) {
for (OrderRequest o : records) {
OrderServiceList record = new OrderServiceList();
names = engineerNames.getOrDefault(o.getOrderId(), null);
record.setOrderId(o.getOrderId());
......@@ -82,12 +81,12 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
record.setOrgBranchName(o.getOrgBranchName());
record.setEngineerNum(this.getEngNum(names)); //工程师数量
record.setEngineerNames(this.getEngNames(names)); //工程师姓名列表
record.setExpectTimeBegin(this.Timestamp2Datetime(o.getExpectTimeBegin()));
record.setExpectTimeEnd(this.Timestamp2Datetime(o.getExpectTimeEnd()));
record.setExpectTimeBegin(TimeUtils.IsoTimestamp2DateTime(o.getExpectTimeBegin()));
record.setExpectTimeEnd(TimeUtils.IsoTimestamp2DateTime(o.getExpectTimeEnd()));
record.setAppointmentTime(null);
record.setAppointmentStatus(o.getAppointmentStatus());
record.setAppointmentType(o.getAppointmentMethod());
record.setCreateTime(this.Timestamp2Datetime(o.getCreateTime()));
record.setCreateTime(TimeUtils.IsoTimestamp2DateTime(o.getCreateTime()));
content.add(record);
}
......@@ -106,23 +105,23 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
public List<OrderAppointment> getOrderAppointments(List<String> orderIds) {
// 获取指派单列表
if(CollectionUtil.isEmpty(orderIds)) {
if (CollectionUtil.isEmpty(orderIds)) {
return new ArrayList<>();
}
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderAppointment::getOrderId, orderIds);
return orderAppointmentMPDao.selectList(lqw);
}
public HashMap<String, List<String>> getEngineerNames(List<OrderAppointment> orders){
public HashMap<String, List<String>> getEngineerNames(List<OrderAppointment> orders) {
// 获取orderId最新订单对应的工程师姓名列表
HashMap<String, List<String>> engineerNames = new HashMap<>();
Map<String, List<OrderAppointment>> g =this.groupOrderAppointments(orders);
for(String orderId: g.keySet()) {
Map<String, List<OrderAppointment>> g = this.groupOrderAppointments(orders);
for (String orderId : g.keySet()) {
List<String> names = new ArrayList<>();
for(OrderAppointment o: g.get(orderId)) {
for (OrderAppointment o : g.get(orderId)) {
names.add(o.getEngineerName());
}
engineerNames.put(orderId, names);
......@@ -130,7 +129,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
return engineerNames;
}
public Map<String, List<OrderAppointment>> groupOrderAppointments(List<OrderAppointment> orders){
public Map<String, List<OrderAppointment>> groupOrderAppointments(List<OrderAppointment> orders) {
// 获取orderId对应的最新的subOrderId的订单列表
// 根据orderId+subOrderId降序排序
......@@ -143,7 +142,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
String orderId = "";
String subOrderId = "";
List<OrderAppointment> items = new ArrayList<>();
for (OrderAppointment o: results) {
for (OrderAppointment o : results) {
if (!orderId.equals(o.getOrderId())) {
orderId = o.getOrderId();
subOrderId = o.getSuborderId();
......@@ -157,9 +156,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
return items.stream().collect(Collectors.groupingBy(OrderAppointment::getOrderId));
}
private Integer getEngNum(List<String> names){
private Integer getEngNum(List<String> names) {
/*获取工程师数量*/
if(names == null) {
if (names == null) {
return 0;
}
return names.size();
......@@ -172,13 +171,4 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
}
return String.join("、", names);
}
public Timestamp getTimestampFromDate(String date){
return Timestamp.valueOf(date + " 00:00:00");
}
private String Timestamp2Datetime(Timestamp t) {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return df.format(t.toLocalDateTime());
}
}
package com.dituhui.pea.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.ScheduleEngineerOverviewResp;
import com.dituhui.pea.order.dto.ScheduleOverviewResp;
import com.dituhui.pea.order.entity.*;
import com.dituhui.pea.order.service.ScheduleService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -136,8 +135,8 @@ public class ScheduleServiceImpl implements ScheduleService {
List<ScheduleEngineerOverviewResp.Timeline> timelines = new ArrayList<>();
for (OrderAppointment o : orderAppointments) {
ScheduleEngineerOverviewResp.Timeline item = new ScheduleEngineerOverviewResp.Timeline();
item.setStartTime(this.Timestamp2Datetime(o.getExpectStartTime(), "hh:mm"));
item.setEndTime(this.Timestamp2Datetime(o.getExpectEndTime(), "hh:mm"));
item.setStartTime(TimeUtils.timestamp2DateTime(o.getExpectStartTime(), "hh:mm"));
item.setEndTime(TimeUtils.timestamp2DateTime(o.getExpectEndTime(), "hh:mm"));
item.setType(o.getStatus());
timelines.add(item);
}
......@@ -181,7 +180,7 @@ public class ScheduleServiceImpl implements ScheduleService {
orders.add(item);
}
String groupName="";
String groupName = "";
OrgGroup group = this.queryOrgGroupInfo(engineer.getGroupId());
if (group != null) {
groupName = group.getGroupName();
......@@ -225,8 +224,8 @@ public class ScheduleServiceImpl implements ScheduleService {
LambdaQueryWrapper<OrderRequest> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderRequest::getOrgTeamId, teamId);
lqw.eq(OrderRequest::getAppointmentStatus, "ASSIGNED");
lqw.gt(OrderRequest::getExpectTimeBegin, this.getTimestampFromDate(date, "00:00:00"));
lqw.lt(OrderRequest::getExpectTimeBegin, this.getTimestampFromDate(date, "23:59:59"));
lqw.ge(OrderRequest::getExpectTimeBegin, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", date)));
lqw.le(OrderRequest::getExpectTimeBegin, TimeUtils.IsoDateTime2Timestamp(String.format("%s 23:59:59", date)));
return orderRequestMPDao.selectList(lqw);
}
......@@ -239,16 +238,16 @@ public class ScheduleServiceImpl implements ScheduleService {
private List<OrderAppointment> queryOrderAppointments(List<String> orderIds, String date) {
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderAppointment::getOrderId, orderIds);
lqw.ge(OrderAppointment::getExpectStartTime, this.getTimestampFromDate(date, "00:00:00"));
lqw.le(OrderAppointment::getExpectEndTime, this.getTimestampFromDate(date, "23:59:59"));
lqw.ge(OrderAppointment::getExpectStartTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", date)));
lqw.le(OrderAppointment::getExpectEndTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 23:59:59", date)));
return orderAppointmentMPDao.selectList(lqw);
}
private List<OrderAppointment> queryOrderAppointmentsByEngineerCode(String engineerCode, String date) {
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderAppointment::getEngineerCode, engineerCode);
lqw.ge(OrderAppointment::getExpectStartTime, this.getTimestampFromDate(date, "00:00:00"));
lqw.le(OrderAppointment::getExpectEndTime, this.getTimestampFromDate(date, "23:59:59"));
lqw.ge(OrderAppointment::getExpectStartTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", date)));
lqw.le(OrderAppointment::getExpectEndTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 23:59:59", date)));
return orderAppointmentMPDao.selectList(lqw);
}
......@@ -291,13 +290,4 @@ public class ScheduleServiceImpl implements ScheduleService {
item.setValue(value);
return item;
}
private Timestamp getTimestampFromDate(String date, String t) {
return Timestamp.valueOf(date + " " + t);
}
private String Timestamp2Datetime(Timestamp t, String pattern) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(pattern);
return df.format(t.toLocalDateTime());
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!