java时间格式化

1,CST时间格式化,这个一般是返回值的类型为 Date 类型,如果不做处理,返给前端的就是时间戳,当然也可以更改返回值类型为 String,这样就不用处理了。方法如下:

复制代码
    /**
    * 格式化时间
    * @param date  Thu Sep 28 11:51:40 CST 2023
    * @return      2023-09-28 11:51:40
    */
   public static String CSTTime(String date)  {
//    只有年月日
//    DateFormat formate = new SimpleDateFormat("yyyy-MM-dd");
//    精确到时分秒
      DateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      DateFormat dateFormate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
      Date dateTime = null;
      try {
         dateTime = dateFormate.parse(date);
      } catch (ParseException e) {
         logger.error("日期格式化失败",e.getMessage(),e);
      }
      String dateString = formate.format(dateTime);
      return dateString;
   }

2,日期增加汉字,方法如下:

**** 常量都写在这里,下面的方法用到的常量都在此处 ****

复制代码
public static final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static final SimpleDateFormat TIME_FORMAT_Type = new SimpleDateFormat("yyyyMMddHHmmss");
public static final SimpleDateFormat TIME_FORMAT_MINUTE_Type = new SimpleDateFormat("yyyyMMddHHmm");
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
public static final DateFormat DATE_FORMAT_Z = new SimpleDateFormat("yyyy年MM月dd日");
public static final DateFormat DATE_FORMAT_d = new SimpleDateFormat("yyyy.MM.dd");
复制代码
/**
 * 格式化时间
 * @param date 2020-02-02
 * @return     2020年02月02日
 */
public static String strDate(String date){
   Date parse = null;
   try {
           if (StringUtil.isNotBlank(date)) {
               parse = DATE_FORMAT.parse(date);
           } else {
               return "";
           }
   } catch (ParseException e) {
      logger.error("日期格式化失败",e.getMessage(),e);
   }

   return DATE_FORMAT_Z.format(parse);
}

3,时间格式由 "-" 变成 "." ,代码如下:

复制代码
/**
 * 格式化时间
 * @param date 2020-02-02
 * @return     2020.02.02
 */
public static String strDated(String date){
   Date parse = null;
   try {
           if (StringUtil.isNotBlank(date)) {
               parse = DATE_FORMAT.parse(date);
           } else {
               return "";
           }

   } catch (ParseException e) {
      logger.error("日期格式化失败",e.getMessage(),e);
   }

   return DATE_FORMAT_d.format(parse);
}

4,斜杆时间并去掉前面的0

复制代码
/**
 * 格式化时间
 * @param date 2020-02-02
 * @return     2020/2/2
 */
public static String strDate6(String date){
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy/M/d");
   Date currentTime = null;
   try {
      currentTime = DATE_FORMAT.parse(date);
   } catch (ParseException e) {
      e.printStackTrace();
   }
   //得到当前系统时间
   return formatter.format(currentTime); //将日期时间格式化
}

5,前面加 0

复制代码
/**
 * 格式化时间
 * @param date 2020-2-2
 * @return     2020-02-02
 */
public static String strDate1(String date){
   Date parse = null;
   try {
           if (StringUtil.isNotBlank(date)) {
               parse = DATE_FORMAT.parse(date);
           } else {
               return "";
           }
   } catch (ParseException e) {
      logger.error("日期格式化失败",e.getMessage(),e);
   }
   return DATE_FORMAT.format(parse);
}

6,没有符合的时间格式转时间,这个不常用

复制代码
/**
 * 格式化时间
 * @param date 20230927190901
 * @return     2023-09-27 19:09:01
 */
public static String strDate2(String date){
   Date parse = null;
   try {
           if (StringUtil.isNotBlank(date)) {
               parse = TIME_FORMAT_Type.parse(date);
           } else {
               return "";
           }
   } catch (ParseException e) {
      logger.error("日期格式化失败",e.getMessage(),e);
   }
   return TIME_FORMAT.format(parse);
}

7,去掉时分秒

复制代码
/**
 * 格式化时间
 * @param date 2020-02-02 19:09:01
 * @return     2020-02-02
 */
public static String strDate4(String date){
   Date parse = null;
   try {
           if (StringUtil.isNotBlank(date)) {
               parse = TIME_FORMAT.parse(date);
           } else {
               return "";
           }

   } catch (ParseException e) {
      logger.error("日期格式化失败",e.getMessage(),e);
   }
   return DATE_FORMAT.format(parse);
}

8,时间和时间戳相互转换,这个都写在一起了,需要的自己改一下就行

复制代码
/**
 *
 * @param timeType    时间格式 yyyy-MM-dd HH:mm:ss
 * @param timestamp   时间戳 1695794616000
 * @param time        时间 2023-09-27 22:22:22
 * @return
 */
public static void timeAndTimestamp(String timeType,String timestamp,String time){
   SimpleDateFormat simpleDateFormat = new SimpleDateFormat(timeType);
   String format = simpleDateFormat.format(new Date(Long.parseLong(timestamp)));
   System.out.println("时间戳转时间:"+ format );  
   try {
      SimpleDateFormat sdf = new SimpleDateFormat(timeType);
      String s = String.valueOf(sdf.parse(time).getTime()/1000);
      System.out.println("时间转时间戳:"+ s);
   } catch (Exception e) {
      e.printStackTrace();
   }
}

结果:

时间戳转时间:2023-09-27 14:03:36

时间转时间戳:1695824542

相关推荐
程序员小凯32 分钟前
Spring Boot消息队列与事件驱动详解
java·spring boot·后端
编程岁月38 分钟前
java面试-0141-java反射?优缺点?场景?原理?Class.forName和ClassLoader区别?
java·开发语言·面试
数字化顾问1 小时前
Flink ProcessFunction 与低层级 Join 实战手册:实时画像秒级更新系统
java·开发语言
计算机学姐2 小时前
基于微信小程序的垃圾分类管理系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
Mr_hwt_1232 小时前
spring boot框架中本地缓存@Cacheable原理与踩坑点详细解析
java·spring boot·后端·缓存
zl9798992 小时前
SpringBoot-自动配置原理
java·spring boot·spring
兮动人2 小时前
Java 单元测试中的 Mockito 使用详解与实战指南
java·开发语言·单元测试
豆沙沙包?2 小时前
2025年--Lc186--64. 最小路径和(多维动态规划,矩阵)--Java版
java·矩阵·动态规划
武子康2 小时前
Java-151 深入浅出 MongoDB 索引详解 性能优化:慢查询分析 索引调优 快速定位并解决慢查询
java·开发语言·数据库·sql·mongodb·性能优化·nosql
Query*3 小时前
Java 设计模式——建造者模式:从原理到实战的极简指南
java·设计模式·建造者模式