千家信息网

Java常用时间格式转换工具类有哪些

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下Java常用时间格式转换工具类有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!开发过程中,经常遇到各
千家信息网最后更新 2026年11月01日Java常用时间格式转换工具类有哪些

小编给大家分享一下Java常用时间格式转换工具类有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  开发过程中,经常遇到各种时间格式的转换。今天特此以博客的方式,记录开发过程中可能遇到的各种类型时间的格式转换,以工具类的方式引入,方便大家开发中使用!

  public final class DataUtils{

  /**

  * 预设不同的时间格式

  */

  //精确到年月日(英文) eg:2019-11-11

  public static String FORMAT_LONOGRAM = "yyyy-MM-dd" ;

  //精确到时分秒的完整时间(英文) eg:2010-11-11 12:12:12

  public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss";

  //精确到毫秒完整时间(英文) eg:2019-11-11 12:12:12.55

  public static String FORMAT_FULL_MILL = "yyyy-MM-dd HH:mm:ss.SSS"

  //精确到年月日(中文)eg:2019年11月11日

  public static String FORMAT_LONOGRAM_CN = "yyyy年MM月dd日"

  //精确到时分秒的完整时间(中文)eg:2019年11月11日 12时12分12秒

  public static String FORMAT_FULL_CN = "yyyy年MM月dd日 HH时mm分ss秒"

  //精确到毫秒完整时间(中文)

  public static String FORMAT_FULL_MILL_CN = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒"

  /**

  *预设默认的时间格式

  */

  public static String getDefaultFormat(){return FORMAT_FULL};

  /**

  * 预设格式格式化日期

  */

  public static String format(Date date) {

  return format(date, getDefaultFormat());

  }

  /**

  *自定义格式格式化日期

  */

  public static String format(Date date,String format){

  String value = "";

  if(date!=null){

  SimpleDateFormat sdf = new SimpleDateFormat(format);

  value = sdf.format(date);

  }

  return value;

  }

  /**

  *根据预设默认格式,返回当前日期

  */

  public static String getNow(){return format(new Date());}

  /**

  *自定义时间格式,返回当前日期

  */

  public static String getNow(String format){return format(new Date(),format);}

  /**

  *根据预设默认时间 String->Date

  */

  public static Date parse(String strDate){return parse(strDate,getDefaultFormat)};

  /**

  *自定义时间格式:Stirng->Date

  */

  public static Date parse(String strDate,String format){

  SimpleDateFormat sdf = new SimpleDateFormat(format);

  try{

  return sdf.parse(strDate);

  }catch(ParseException e){

  e.printStackTrace();

  return null;

  }

  }

  /**

  *基于指定日期增加年

  *@param num 整数往后推,负数往前移

  */

  public static Date addMobth(Date date,int num){

  Calendar= Calendar.getInstance();

  cal.setTime(date);

  cal.add(Calendar.YEAR,num);

  return cal.getTime();

  }

  /**

  *基于指定日期增加整月

  *@param num 整数往后推,负数往前移

  */

  public static Date addMobth(Date date,int num){

  Calendar= Calendar.getInstance();

  cal.setTime(date);

  cal.add(Calendar.MONTH,num);

  return cal.getTime();

  }

  /**

  *基于指定日期增加天数

  *@param num 整数往后推,负数往前移

  */

  public static Date addDay(Date date, int num) {

  Calendar cal = Calendar.getInstance();

  cal.setTime(date);

  cal.add(Calendar.DATE, num);

  return cal.getTime();

  }

  /**

  *基于指定日期增加分钟

  *@param num 整数往后推,负数往前移

  */

  public static Date addMinute(Date date, int num) {

  Calendar cal = Calendar.getInstance();

  cal.setTime(date);

  cal.add(Calendar.MINUTE, num);

  return cal.getTime();

  }

  /**

  *获取时间戳 eg:yyyy-MM-dd HH:mm:ss.S

  */

  public static String getTimeStamp(){

  SimpleDateFormat sdf = new SimpleDateFormat(FORMAT_FULL_MILL);

  Calendar cal = Calendar.getInstance();

  return sdf.format(Calendar.getTime());

  }

  /**

  *获取日期年份

  */

  public static String getYear(Date date){return format(date).substring(0,4);}

  /**

  *获取年份+月

  */

  public static String getYearMonth(Date date){return format(date).substring(0,7);}

  /**

  *获取日期的小时数

  */

  public static int getHour(Date date){

  Calendar calendar = Calendar.getInstrance();

  calendar.setTime(date);

  return calendar.get(Calendar.HOUR_OFDAY);

  }

  /**

  *自定义时间格式字符串距离今天的天数

  */

  public static int countDays(String strDate,String format){

  long time = Calendar.getInstance.getTime().getTime();

  Calendar cal = Calendar.getInstance();

  cal.setTime(parse(strDate,format));

  long diff = cal.getTime().getTime();

  return (int) (time/1000 - diff/1000)/3600/24;

  }

  /**

  * 预设格式的字符串距离今天的天数

  */

  public static int countDays(String strDate){return countDays(strDate,getDefaultFormat());}

  /**

  * 获取天数差值(依赖时间)

  * @return

  */

  public static int diffDays(Date date1, Date date2) {

  if (date1 == null || date2 == null) return 0;

  return (int) (Math.abs(date1.getTime() - date2.getTime()) / (60 * 60 * 24 * 1000));

  }郑州人流医院哪家好 http://mobile.zyyyzz.com/

  /**

  *获取年份差值

  */

  public static int diffYear(Date year1,Date year2){return diffDays(year1,year2) / 365;}

  /**

  * 获取天数差值(依赖Date类型的日期)

  * @return

  */

  public static int diffByDays(Date d1, Date d2) {

  Date s1 = parse(format(d1, FORMAT_LONOGRAM ), FORMAT_LONOGRAM );

  Date s2 = parse(format(d2, FORMAT_LONOGRAM ), FORMAT_LONOGRAM );

  return diffDays(s1, s2);

  }

  /**

  * 获取时间分割集合

  *

  * @param date 查询日期

  * @param strs 带拆分的时间点

  * @return

  */

  public static List collectTimes(Date date, String[] strs) {

  List result = new ArrayList<>();

  List times = Arrays.asList(strs);

  String dateStr = format(date, FORMAT_LONOGRAM );

  String pattern = FORMAT_LONOGRAM + " k";

  if (times.size() > 0) {

  times.stream().forEach(t -> {

  result.add(parse(dateStr + " " + t, pattern));

  });

  }

  return result;

  }

  /**

  * 根据日期查询当前为周几

  * @param dt

  * @return

  */

  public static String getWeekOfDate(Date dt) {

  String[] weekDays = {"1", "2", "3", "4", "5", "6", "7"};

  Calendar cal = Calendar.getInstance();

  cal.setTime(dt);

  int w = cal.get(Calendar.DAY_OF_WEEK);

  if (0 == w) {

  w = 7;

  }

  return weekDays[w];

  }

  public static String intToCn(int hourInt, String[] timeArray) {

  String result = "";

  if (0 <= hourInt && hourInt <= 10) {

  result += timeArray[hourInt] + "\n";

  } else if (11 <= hourInt && hourInt <= 19) {

  result += (timeArray[10] + "\n" + timeArray[hourInt % 10]) + "\n";

  } else {

  result += (timeArray[hourInt / 10] + "\n" + timeArray[10] + "\n" + (hourInt % 10 == 0 ? "" : timeArray[hourInt % 10] + "\n"));

  }

  return result;

  }

  /**

  * 将时间转换成汉字

  * @param hour

  * @return

  */

  public static String hourToCn(String hour){

  String[] timeArray = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"};

  String[] hourArray = hour.split(":");

  int hourInt = Integer.parseInt(hourArray[0]);

  int minute = Integer.parseInt(hourArray[1]);

  String result = intToZh(hourInt, timeArray) + "点\n" + intToZh(minute, timeArray) + "分";

  return result;

  }

  /**

  * 获取当前日期后的一周时间,并返回LinkedHashMap

  * @param startTime

  * @return

  */

  public static LinkedHashMap dateAfterWeek(String startTime) {

  LinkedHashMap result = new LinkedHashMap<>();

  try {

  Date date = parse(startTime,FORMAT_LONOGRAM);

  for (int i = 0; i < 7; i++) {

  Calendar calendar = Calendar.getInstance();

  calendar.setTime(date);

  calendar.add(calendar.DATE, m); //把日期往后增加一天,整数往后推,负数往前移动 时间戳转时间

  Date newDate = calendar.getTime();

  String str = new SimpleDateFormat("yyyy-MM-dd").format(newDate);

  result.put(str, newDate);

  }

  } catch (Exception e) {

  e.printStackTrace();

  }

  return result;

  }

  /**

  * 获取当前日期 后的一周时间,并返回yyyy-MM-dd字符串数组

  * @param startTime

  * @return

  */

  public static String[] dateAfterWeekArray(String startTime) {

  String weekArray[] = new String[7];

  try {

  Date date = parse(startTime,FORMAT_LONOGRAM);

  for (int i = 0; i < 7; i++) {

  Calendar calendar = Calendar.getInstance();

  calendar.setTime(date);

  calendar.add(calendar.DATE, m); //把日期往后增加一天,整数往后推,负数往前移动 时间戳转时间

  Date newDate = calendar.getTime();

  weekArray[m] = new SimpleDateFormat("yyyy-MM-dd").format(newDate);

  }

  } catch (Exception e) {

  e.printStackTrace();

  }

  return weekArray;

  }

  }

以上是"Java常用时间格式转换工具类有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

时间 日期 格式 精确 整数 负数 天数 工具 字符 字符串 差值 年份 篇文章 中文 英文 开发 常用 内容 分秒 到时 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 百单网互联网科技有限公司怎么样 广东万易互联网科技有限公司惠州分公司 互联网科技会 互联网最新的科技有限公司 狮子座互联网科技有限公司 互联网金融和金融科技 成都仁贤领冠互联网科技有限公司 华中科技有哪些互联网大佬 北京华百购互联网科技有限公司 互联网校园科技培训 乌苏新华互联网科技做什么的 广州百诚互联网科技有限公司官网 广东鹅鹅鹅互联网科技有限公司 湖北辰鑫科技互联网 保山互联网科技靠谱吗 恒生科技指数 中概互联网 现代互联网科技公司 互联网金融金融科技 广州全民伙伴互联网科技有限公司 杭州互联网科技公司 新浪科技互联网 常德市电业局互联网科技部 互联网科技公司实习生 广州千川互联网科技有限公司 下一代互联网重大应用科技园 2021世界互联网领先科技成果发布 互联网科技包装股 兰石爱特工业互联网科技分公司 银川新华互联网科技学校原画
0