package com.jcdm.main.plcserver.util;
|
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.Date;
|
import java.util.Locale;
|
import java.util.TimeZone;
|
|
public class TimeUtil {
|
public static void main(String[] args) {
|
String dateString = "Tue May 14 18:25:18 CST 2024";
|
// System.out.println(test(dateString));
|
|
System.out.println(test( stringProcessing("DateTime{utcTime=133601559184960000, javaDate=Tue May 14 18:25:18 CST 2024}")));
|
}
|
|
public static String stringProcessing(String dateTimeStr){
|
String result = "";
|
// 找到 "javaDate=" 的位置
|
int javaDateIndex = dateTimeStr.indexOf("javaDate=");
|
if (javaDateIndex != -1) {
|
// 从 "javaDate=" 后面开始截取
|
javaDateIndex += "javaDate=".length();
|
|
// 找到日期时间字符串结束的位置,这里假设是字符串的结尾或者空格的位置
|
int endIndex = dateTimeStr.indexOf('}', javaDateIndex);
|
if (endIndex == -1) {
|
// 如果没有找到空格,就取到字符串的末尾
|
endIndex = dateTimeStr.length();
|
}
|
// 使用 substring 方法截取日期时间部分
|
String dateTimePart = dateTimeStr.substring(javaDateIndex, endIndex);
|
result = dateTimePart;
|
} else {
|
System.out.println("javaDate= not found in the string.");
|
}
|
return result;
|
}
|
|
public static String getTimestamp(String param){
|
String result = "";
|
// 定义日期时间格式和时区
|
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
|
sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); // CST通常表示中国标准时间,即东八区
|
|
try {
|
// 解析日期时间字符串
|
Date date = sdf.parse("Mon Jan 01 17:05:23 CST 2024");
|
|
// 获取时间戳(毫秒)
|
long timestamp = date.getTime();
|
|
// 输出13位时间戳
|
result = String.valueOf(timestamp);
|
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
return result;
|
}
|
|
public static String getYyyyDdMm(String inputDate){
|
String outputPattern = "yyyy-MM-dd HH:mm:ss";
|
|
// 定义一个解析器,用于忽略时区(仅作为示例,可能需要调整以处理不同的输入)
|
SimpleDateFormat parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
|
parser.setLenient(false); // 设置不宽松,以严格匹配格式
|
|
// 解析日期字符串
|
Date date = null;
|
try {
|
date = parser.parse(inputDate);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
|
// 定义一个格式化器,用于输出所需的格式
|
SimpleDateFormat formatter = new SimpleDateFormat(outputPattern);
|
|
// 格式化日期
|
String outputDate = formatter.format(date);
|
return outputDate;
|
}
|
|
public static String test(String param){
|
String str = "";
|
// 创建一个SimpleDateFormat对象来解析输入的日期字符串(假设CST为中国标准时间)
|
SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
|
inputFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 设置为中国时区
|
|
Date date = null;
|
try {
|
date = inputFormat.parse(param);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
|
// 创建一个SimpleDateFormat对象来格式化日期为UTC时间
|
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
outputFormat.setTimeZone(TimeZone.getTimeZone("UTC")); // 设置为UTC时区
|
|
// 格式化日期
|
if (date != null) {
|
str = outputFormat.format(date);
|
}
|
return str;
|
}
|
|
|
|
}
|