Compare commits
2 Commits
4bc2b8075a
...
8ad59527e5
Author | SHA1 | Date | |
---|---|---|---|
8ad59527e5 | |||
b22ab35f42 |
@ -299,4 +299,56 @@ public class JobController {
|
|||||||
param.setEndCreateDate(param.getEndDate());
|
param.setEndCreateDate(param.getEndDate());
|
||||||
return dataImportNewService.immigrationUpdateNew(param);
|
return dataImportNewService.immigrationUpdateNew(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据更新同步(新)
|
||||||
|
* @param paramStr
|
||||||
|
* @author kris
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@PostMapping("/dataImportJob")
|
||||||
|
@ApiOperation("获取new_id")
|
||||||
|
@LogServiceAnnotation(operateType = OperateTypeConstant.TYPE_UPDATE, remark = "获取new_id")
|
||||||
|
public ReturnT<String> dataImportJob(String paramStr) throws Exception {
|
||||||
|
log.info("dataImportJob execute start ..................");
|
||||||
|
SalesforceParam param = new SalesforceParam();
|
||||||
|
try {
|
||||||
|
if (StringUtils.isNotBlank(paramStr)) {
|
||||||
|
param = JSON.parseObject(paramStr, SalesforceParam.class);
|
||||||
|
}
|
||||||
|
} catch (Throwable throwable) {
|
||||||
|
return new ReturnT<>(500, "参数解析失败!");
|
||||||
|
}
|
||||||
|
// 参数转换
|
||||||
|
param.setBeginCreateDate(param.getBeginDate());
|
||||||
|
param.setEndCreateDate(param.getEndDate());
|
||||||
|
return dataImportService.immigration(param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据更新同步(新)
|
||||||
|
* @param paramStr
|
||||||
|
* @author kris
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@PostMapping("/dataUpdateJob")
|
||||||
|
@ApiOperation("更新目标org数据")
|
||||||
|
@LogServiceAnnotation(operateType = OperateTypeConstant.TYPE_UPDATE, remark = "更新目标org数据")
|
||||||
|
public ReturnT<String> dataUpdateJob(String paramStr) throws Exception {
|
||||||
|
log.info("dataUpdateJob execute start ..................");
|
||||||
|
SalesforceParam param = new SalesforceParam();
|
||||||
|
try {
|
||||||
|
if (StringUtils.isNotBlank(paramStr)) {
|
||||||
|
param = JSON.parseObject(paramStr, SalesforceParam.class);
|
||||||
|
}
|
||||||
|
} catch (Throwable throwable) {
|
||||||
|
return new ReturnT<>(500, "参数解析失败!");
|
||||||
|
}
|
||||||
|
// 参数转换
|
||||||
|
param.setBeginCreateDate(param.getBeginDate());
|
||||||
|
param.setEndCreateDate(param.getEndDate());
|
||||||
|
return dataImportNewService.immigrationUpdateNew(param);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -366,10 +366,7 @@ public class CommonServiceImpl implements CommonService {
|
|||||||
}
|
}
|
||||||
// 等待当前所有线程执行完成
|
// 等待当前所有线程执行完成
|
||||||
salesforceExecutor.waitForFutures(futures.toArray(new Future<?>[]{}));
|
salesforceExecutor.waitForFutures(futures.toArray(new Future<?>[]{}));
|
||||||
// 附件表 跑一遍dumpFile
|
|
||||||
if (StringUtils.isNotBlank(dataObject.getBlobField())) {
|
|
||||||
fileService.dumpFile(dataObject.getName(), dataObject.getBlobField(), true);
|
|
||||||
}
|
|
||||||
update.setDataWork(0);
|
update.setDataWork(0);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
String message = e.getMessage();
|
String message = e.getMessage();
|
||||||
@ -377,10 +374,8 @@ public class CommonServiceImpl implements CommonService {
|
|||||||
EmailUtil.send("DataDump ERROR", format);
|
EmailUtil.send("DataDump ERROR", format);
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
} finally {
|
} finally {
|
||||||
if (dataObject != null) {
|
update.setDataLock(0);
|
||||||
update.setDataLock(0);
|
dataObjectService.updateById(update);
|
||||||
dataObjectService.updateById(update);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 等待当前所有线程执行完成
|
// 等待当前所有线程执行完成
|
||||||
@ -462,11 +457,7 @@ public class CommonServiceImpl implements CommonService {
|
|||||||
|
|
||||||
// 等待当前所有线程执行完成
|
// 等待当前所有线程执行完成
|
||||||
salesforceExecutor.waitForFutures(futures.toArray(new Future<?>[]{}));
|
salesforceExecutor.waitForFutures(futures.toArray(new Future<?>[]{}));
|
||||||
// 附件表 跑一遍dumpFile
|
|
||||||
DataObject one = dataObjectService.getById(api);
|
|
||||||
if (StringUtils.isNotBlank(one.getBlobField())) {
|
|
||||||
fileService.dumpFile(one.getName(), one.getBlobField(), true);
|
|
||||||
}
|
|
||||||
update.setDataWork(0);
|
update.setDataWork(0);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
log.error("manualDump error", e);
|
log.error("manualDump error", e);
|
||||||
|
@ -361,7 +361,7 @@ public class DataImportBatchServiceImpl implements DataImportBatchService {
|
|||||||
//引用类型
|
//引用类型
|
||||||
String reference = dataField.getReferenceTo();
|
String reference = dataField.getReferenceTo();
|
||||||
//引用类型字段
|
//引用类型字段
|
||||||
String linkfield = fieldMap.get(dataField.getApi());
|
String linkfield = fieldMap.get(dataField.getField());
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(linkfield)){
|
if (StringUtils.isNotBlank(linkfield)){
|
||||||
reference = data.get(j-1).get(linkfield)!=null?data.get(j-1).get(linkfield).toString():null;
|
reference = data.get(j-1).get(linkfield)!=null?data.get(j-1).get(linkfield).toString():null;
|
||||||
@ -395,7 +395,7 @@ public class DataImportBatchServiceImpl implements DataImportBatchService {
|
|||||||
account.put(dataField.getField(), pickList.get(0).get("value"));
|
account.put(dataField.getField(), pickList.get(0).get("value"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
account.put(dataField.getField(), DataUtil.fieldTypeToSf(dataField));
|
account.put(dataField.getField(), DataUtil.fieldTypeBulkToSf(dataField));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -748,7 +748,7 @@ public class DataImportBatchServiceImpl implements DataImportBatchService {
|
|||||||
|
|
||||||
if (!"null".equals(value) && StringUtils.isNotEmpty(value)) {
|
if (!"null".equals(value) && StringUtils.isNotEmpty(value)) {
|
||||||
//引用类型字段
|
//引用类型字段
|
||||||
String linkfield = fieldMap.get(dataField.getApi());
|
String linkfield = fieldMap.get(dataField.getField());
|
||||||
if (StringUtils.isNotBlank(linkfield)){
|
if (StringUtils.isNotBlank(linkfield)){
|
||||||
reference_to = map.get(linkfield)!=null?map.get(linkfield).toString():null;
|
reference_to = map.get(linkfield)!=null?map.get(linkfield).toString():null;
|
||||||
}
|
}
|
||||||
@ -1122,7 +1122,7 @@ public class DataImportBatchServiceImpl implements DataImportBatchService {
|
|||||||
//引用类型
|
//引用类型
|
||||||
String reference_to = dataField.getReferenceTo();
|
String reference_to = dataField.getReferenceTo();
|
||||||
//引用类型字段
|
//引用类型字段
|
||||||
String linkfield = fieldMap.get(dataField.getApi());
|
String linkfield = fieldMap.get(dataField.getField());
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(linkfield)){
|
if (StringUtils.isNotBlank(linkfield)){
|
||||||
reference_to = data.get(j-1).get(linkfield)!=null?data.get(j-1).get(linkfield).toString():null;
|
reference_to = data.get(j-1).get(linkfield)!=null?data.get(j-1).get(linkfield).toString():null;
|
||||||
|
@ -758,7 +758,8 @@ public class DataImportNewServiceImpl implements DataImportNewService {
|
|||||||
List<Map<String, Object>> mapList = customMapper.list("*", api, sql2+ i * 200 + ",200");
|
List<Map<String, Object>> mapList = customMapper.list("*", api, sql2+ i * 200 + ",200");
|
||||||
SObject[] accounts = new SObject[mapList.size()];
|
SObject[] accounts = new SObject[mapList.size()];
|
||||||
int j = 0;
|
int j = 0;
|
||||||
for (Map<String, Object> map : mapList) {
|
try {
|
||||||
|
for (Map<String, Object> map : mapList) {
|
||||||
SObject account = new SObject();
|
SObject account = new SObject();
|
||||||
account.setType(api);
|
account.setType(api);
|
||||||
//给对象赋值
|
//给对象赋值
|
||||||
@ -776,7 +777,7 @@ public class DataImportNewServiceImpl implements DataImportNewService {
|
|||||||
|
|
||||||
if (!"null".equals(value) && StringUtils.isNotEmpty(value)) {
|
if (!"null".equals(value) && StringUtils.isNotEmpty(value)) {
|
||||||
//引用类型字段
|
//引用类型字段
|
||||||
String linkfield = fieldMap.get(dataField.getApi());
|
String linkfield = fieldMap.get(dataField.getField());
|
||||||
if (StringUtils.isNotBlank(linkfield)){
|
if (StringUtils.isNotBlank(linkfield)){
|
||||||
reference_to = map.get(linkfield)!=null?map.get(linkfield).toString():null;
|
reference_to = map.get(linkfield)!=null?map.get(linkfield).toString():null;
|
||||||
}
|
}
|
||||||
@ -813,7 +814,6 @@ public class DataImportNewServiceImpl implements DataImportNewService {
|
|||||||
accounts[j++] = account;
|
accounts[j++] = account;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
if (infoFlag != null && "1".equals(infoFlag.get("value"))){
|
if (infoFlag != null && "1".equals(infoFlag.get("value"))){
|
||||||
printlnAccountsDetails(accounts,list);
|
printlnAccountsDetails(accounts,list);
|
||||||
}
|
}
|
||||||
@ -856,6 +856,9 @@ public class DataImportNewServiceImpl implements DataImportNewService {
|
|||||||
for (int i = 0; i < accounts.length; i++) {
|
for (int i = 0; i < accounts.length; i++) {
|
||||||
SObject account = accounts[i];
|
SObject account = accounts[i];
|
||||||
System.out.println("--- 对象数据[" + i + "] ---");
|
System.out.println("--- 对象数据[" + i + "] ---");
|
||||||
|
if (account == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// 获取对象所有字段名
|
// 获取对象所有字段名
|
||||||
for (DataField dataField : list) {
|
for (DataField dataField : list) {
|
||||||
try {
|
try {
|
||||||
@ -865,8 +868,8 @@ public class DataImportNewServiceImpl implements DataImportNewService {
|
|||||||
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("old_owner_id__c: " + (account.getField("old_owner_id__c") != null ? account.getField("old_owner_id__c").toString() : "null"));
|
System.out.println("old_owner_id__c: " + account.getField("old_owner_id__c"));
|
||||||
System.out.println("old_sfdc_id__c: " + (account.getField("old_sfdc_id__c") != null ? account.getField("old_sfdc_id__c").toString() : "null"));
|
System.out.println("old_sfdc_id__c: " + account.getField("old_sfdc_id__c"));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -878,12 +881,15 @@ public class DataImportNewServiceImpl implements DataImportNewService {
|
|||||||
HashMap<String, String> map = new HashMap<>();
|
HashMap<String, String> map = new HashMap<>();
|
||||||
for (int i = 0; i < accounts.length; i++) {
|
for (int i = 0; i < accounts.length; i++) {
|
||||||
SObject account = accounts[i];
|
SObject account = accounts[i];
|
||||||
|
if (account == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (errorId != null && (errorId.equals(account.getId()) || errorId.equals(account.getField("Id")))){
|
if (errorId != null && (errorId.equals(account.getId()) || errorId.equals(account.getField("Id")))){
|
||||||
for (DataField dataField : list) {
|
for (DataField dataField : list) {
|
||||||
try {
|
try {
|
||||||
Object value = account.getField(dataField.getField());
|
Object value = account.getField(dataField.getField());
|
||||||
map.put(dataField.getField(),String.valueOf(value));
|
map.put(dataField.getField(),String.valueOf(value));
|
||||||
System.out.println(dataField.getField() + ": " + (value != null ? value.toString() : "null"));
|
System.out.println(dataField.getField() + ": " + value);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
||||||
}
|
}
|
||||||
|
@ -335,7 +335,7 @@ public class DataImportServiceImpl implements DataImportService {
|
|||||||
//引用类型
|
//引用类型
|
||||||
String reference = dataField.getReferenceTo();
|
String reference = dataField.getReferenceTo();
|
||||||
//引用类型字段
|
//引用类型字段
|
||||||
String linkfield = fieldMap.get(dataField.getApi());
|
String linkfield = fieldMap.get(dataField.getField());
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(linkfield)){
|
if (StringUtils.isNotBlank(linkfield)){
|
||||||
reference = data.get(j-1).get(linkfield)!=null?data.get(j-1).get(linkfield).toString():null;
|
reference = data.get(j-1).get(linkfield)!=null?data.get(j-1).get(linkfield).toString():null;
|
||||||
@ -370,14 +370,6 @@ public class DataImportServiceImpl implements DataImportService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (api.equals("vlink__Wechat_User__c")){
|
|
||||||
List<Map<String, Object>> maps = customMapper.list("new_id", "vlink__Wechat_Account__c", "new_id is not null and id = '" + data.get(j - 1).get("vlink__Wechat_Account__c") + "' limit 1");
|
|
||||||
if (!maps.isEmpty()){
|
|
||||||
Map<String, Object> referenceMap = maps.get(0);
|
|
||||||
account.setField("vlink__Wechat_Account__c", referenceMap.get("new_id"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ids[j-1] = data.get(j-1).get("Id").toString();
|
ids[j-1] = data.get(j-1).get("Id").toString();
|
||||||
accounts[j-1] = account;
|
accounts[j-1] = account;
|
||||||
if (i*200+j == count){
|
if (i*200+j == count){
|
||||||
@ -406,8 +398,7 @@ public class DataImportServiceImpl implements DataImportService {
|
|||||||
}
|
}
|
||||||
TimeUnit.MILLISECONDS.sleep(1);
|
TimeUnit.MILLISECONDS.sleep(1);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("manualCreatedNewId error api:{}", api, e);
|
log.error("manualCreatedNewId error api:{},错误信息:{}", api, e.getMessage());
|
||||||
throw e;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SalesforceParam countParam = new SalesforceParam();
|
SalesforceParam countParam = new SalesforceParam();
|
||||||
@ -740,18 +731,19 @@ public class DataImportServiceImpl implements DataImportService {
|
|||||||
for (int i = 0; i < accounts.length; i++) {
|
for (int i = 0; i < accounts.length; i++) {
|
||||||
SObject account = accounts[i];
|
SObject account = accounts[i];
|
||||||
System.out.println("--- Account[" + i + "] ---");
|
System.out.println("--- Account[" + i + "] ---");
|
||||||
|
if (account == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 获取对象所有字段名
|
// 获取对象所有字段名
|
||||||
for (DataField dataField : list) {
|
for (DataField dataField : list) {
|
||||||
try {
|
try {
|
||||||
Object value = account.getField(dataField.getField());
|
System.out.println(dataField.getField() + ": " + account.getField(dataField.getField()));
|
||||||
System.out.println(dataField.getField() + ": " + (value != null ? value.toString() : "null"));
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("old_owner_id__c: " + (account.getField("old_owner_id__c") != null ? account.getField("old_owner_id__c").toString() : "null"));
|
System.out.println("old_owner_id__c: " + account.getField("old_owner_id__c"));
|
||||||
System.out.println("old_sfdc_id__c: " + (account.getField("old_sfdc_id__c") != null ? account.getField("old_sfdc_id__c").toString() : "null"));
|
System.out.println("old_sfdc_id__c: " + account.getField("old_sfdc_id__c"));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -762,18 +754,21 @@ public class DataImportServiceImpl implements DataImportService {
|
|||||||
HashMap<String, String> map = new HashMap<>();
|
HashMap<String, String> map = new HashMap<>();
|
||||||
SObject account = accounts[i];
|
SObject account = accounts[i];
|
||||||
System.out.println("--- Account[" + i + "] ---");
|
System.out.println("--- Account[" + i + "] ---");
|
||||||
|
if (account == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
// 获取对象所有字段名
|
// 获取对象所有字段名
|
||||||
for (DataField dataField : list) {
|
for (DataField dataField : list) {
|
||||||
try {
|
try {
|
||||||
Object value = account.getField(dataField.getField());
|
Object value = account.getField(dataField.getField());
|
||||||
map.put(dataField.getField(),String.valueOf(value));
|
map.put(dataField.getField(),String.valueOf(value));
|
||||||
System.out.println(dataField.getField() + ": " + (value != null ? value.toString() : "null"));
|
System.out.println(dataField.getField() + ": " + value);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
System.out.println(dataField.getField() + ": [权限不足或字段不存在]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("old_owner_id__c: " + (account.getField("old_owner_id__c") != null ? account.getField("old_owner_id__c").toString() : "null"));
|
System.out.println("old_owner_id__c: " + account.getField("old_owner_id__c"));
|
||||||
System.out.println("old_sfdc_id__c: " + (account.getField("old_sfdc_id__c") != null ? account.getField("old_sfdc_id__c").toString() : "null"));
|
System.out.println("old_sfdc_id__c: " + account.getField("old_sfdc_id__c"));
|
||||||
map.put("old_owner_id__c",String.valueOf(account.getField("old_owner_id__c")));
|
map.put("old_owner_id__c",String.valueOf(account.getField("old_owner_id__c")));
|
||||||
map.put("old_sfdc_id__c",String.valueOf(account.getField("old_sfdc_id__c")));
|
map.put("old_sfdc_id__c",String.valueOf(account.getField("old_sfdc_id__c")));
|
||||||
arrayList.add(map);
|
arrayList.add(map);
|
||||||
|
@ -171,6 +171,7 @@ public class FileServiceImpl implements FileService {
|
|||||||
// 获取未存储的附件id
|
// 获取未存储的附件id
|
||||||
List<Map<String, Object>> list = customMapper.list("Id, " + name, api, extraSql + " AND is_dump = false limit 1000");
|
List<Map<String, Object>> list = customMapper.list("Id, " + name, api, extraSql + " AND is_dump = false limit 1000");
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
|
log.info("无需要下载文件数据!!!");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
String finalName = name;
|
String finalName = name;
|
||||||
|
@ -31,6 +31,10 @@ import javax.annotation.PostConstruct;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
||||||
@ -393,12 +397,29 @@ public class DataUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Object fieldTypeBulkToSf(DataField dataField) throws ParseException {
|
||||||
|
switch (dataField.getSfType()) {
|
||||||
|
case "int":
|
||||||
|
return 1;
|
||||||
|
case "double":
|
||||||
|
case "currency":
|
||||||
|
case "percent":
|
||||||
|
return new BigDecimal("1");
|
||||||
|
case "boolean":
|
||||||
|
return true;
|
||||||
|
case "email":
|
||||||
|
return "kris.dong@163.com";
|
||||||
|
case "date":
|
||||||
|
case "datetime":
|
||||||
|
return "2020-01-01T00:00:00+00:00";
|
||||||
|
default:
|
||||||
|
return "初始"+ UUID.randomUUID();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Object localBulkDataToSfData(String fieldType, String data) throws ParseException {
|
public static Object localBulkDataToSfData(String fieldType, String data) throws ParseException {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
|
|
||||||
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
|
|
||||||
Date date;
|
|
||||||
//date转Calendar类型
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
|
||||||
switch (fieldType) {
|
switch (fieldType) {
|
||||||
case "int":
|
case "int":
|
||||||
return Integer.parseInt(data);
|
return Integer.parseInt(data);
|
||||||
@ -411,14 +432,9 @@ public class DataUtil {
|
|||||||
case "date":
|
case "date":
|
||||||
return data+"T08:00:00Z";
|
return data+"T08:00:00Z";
|
||||||
case "datetime":
|
case "datetime":
|
||||||
try {
|
LocalDateTime localDateTime = LocalDateTime.parse(data, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
|
||||||
date = sd.parse(data);
|
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
|
||||||
}catch (ParseException e){
|
return zonedDateTime.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
|
||||||
//解决当时间秒为0时,转换秒精度丢失问题
|
|
||||||
date = sd.parse(data+":00");
|
|
||||||
}
|
|
||||||
calendar.setTime(date);
|
|
||||||
return calendar;
|
|
||||||
case "time":
|
case "time":
|
||||||
return adjustHour(data);
|
return adjustHour(data);
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user