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)); String str = "OP330"; System.out.println(str.substring(0,5)); // 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; } }