Java使用DateTimeFormatter格式化输入的日期时间

要求:

用DateTimeFormatter实现: 用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间

分析:

1.时间的常用格式为:

xxxx-xx-xx xx:xx
xxxx/xx/xx xx:xx
xxxx.xx.xx xx:xx
等格式

2.微信显式时间格式为:

今天显式: 00:01 - 23:59 ;
昨天显式: 昨天 01:01 ;
前天显式: 周几 02:02
往前推一周都显式: 周几 02:02 ;
时间再往前推只显示: 几月几日 02:02
不同年则显式: 几年几月几日 02:02
也可考虑写一个明天显式: 明天 02:02
其余时间显式: 几月几日 02:02

3.考虑特殊情况下的日期:

比如当前天是1号
则上个月的最后一天是昨天
往前推一周则显式:星期几 02:02
如果当前天不大于7号
则向前推一周到了上个月
也要考虑将其转换为星期

4.先输入一个时间,再对这个时间使用DateTimeFormatter进行格式化

比如:
输入: 2020-1-11 12:22
则格式化结果为:
下午 12:22

代码实现

程序开始:

package hrkj.chapter7.dateTimeFormatter.Test1;

/**
 * 程序开始入口 <br>
 * 2020年1月9日下午7:10:04
 *
 * @author wcf
 * @version 1.0
 */
public class Test {
 /**
 * 程序入口
 *
 * @param args 入口参数
 */
 public static void main(String[] args) {
 // 程序开始运行
 DateTimeFormatterTest.inoutDateTime();
 }
}

日期时间等需要用到的正则表达式:

package hrkj.chapter7.dateTimeFormatter.Test1;

/**
 * 日期时间的正则表达式 <br>
 * 2020年1月9日下午7:25:11
 *
 * @author wcf
 * @version 1.0
 */
public enum Regex {
 /**
 * 匹配闰年
 */
 LEEP_YEAR("((\\d{2}(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[13579][26])00))[-\\/\\.]0?2[-\\/\\.]29"),
 /**
 * 匹配平年
 */
 COMMON_YEAR("(\\d{3}[1-9]|\\d{2}[1-9]\\d|\\d[1-9]\\d{2}|[1-9]\\d{3})[-\\/\\.]((0?[13578]|1[02])[-\\/\\.](0?[1-9]|[12]\\d|3[01])|((0?[469]|11)[-\\/\\.](0?[1-9]|[12]\\d|30))|(0?2[-\\/\\.](0?[1-9]|1\\d|2[0-8])))"),
 /**
 * 匹配时间
 */
 TIME(" ([01]?\\d|2[0-3]):[0-5]?\\d"),
 /**
 * 退出程序
 */
 EXIT("exit|退出");

 /**
 * 正则
 */
 private final String str;

 /**
 * 有参构造器
 *
 * @param string 正则
 */
 private Regex(String string) {
 this.str = string;
 }

 /**
 * 获取正则
 *
 * @return 正则
 */
 public String getStr() {
 return str;
 }
}

提示信息:

package hrkj.chapter7.dateTimeFormatter.Test1;

/**
 * 提示信息 <br>
 * 2020年1月9日下午7:25:53
 *
 * @author wcf
 * @version 1.0
 */
public enum Hint {
 /**
 * 请输入日期时间
 */
 INPUT_DATE_TIME("请输入日期时间:"),
 /**
 * 日期时间格式
 */
 DATETIMEFORMAT("常用格式:xxxx-xx-xx xx:xx\n\t xxxx/xx/xx xx:xx\n\t xxxx.xx.xx xx:xx"),
 /**
 * 日期错误
 */
 INVOKE_DATE("日期错误"),
 /**
 * 时间错误
 */
 INVOKE_TIME("时间错误"),
 /**
 * 日期时间错误
 */
 INVOKE_DATE_TIME("日期时间错误!"),
 /**
 * 继续或退出
 */
 CONTINUE_OR_QUIT("exit:程序退出\n请输入:"),
 /**
 * 程序结束
 */
 END_OF_PROGRAM("退出成功,程序结束!");

 /**
 * 提示
 */
 private final String str;

 /**
 * 有参构造器
 *
 * @param str 提示
 */
 private Hint(String str) {
 this.str = str;
 }

 /**
 * 获取提示
 */
 public void println() {
 System.out.println(str);
 }

}

日期时间格式化的模板字符串:

package hrkj.chapter7.dateTimeFormatter.Test1;

/**
 * 日期时间格式化的模板字符串 <br>
 * 2019年3月1日下午7:17:19
 *
 * @author wcf
 * @version 1.0
 */
public enum Pattern {

 /**
 * 上下午时分
 */
 TIME("a HH:mm"),
 /**
 * 昨天 时分
 */
 YESTERDAY("昨天 HH:mm"),
 /**
 * 明天 时分
 */
 TOMORROW("明天 HH:mm"),
 /**
 * 星期 时分
 */
 WEEK_TIME("E HH:mm"),
 /**
 * 月日时分
 */
 MONTH_DAY_TIME("M月d日 HH:mm"),
 /**
 * 年月日时分
 */
 YEAR_MONTH_DAY_TIME("y年M月d日 HH:mm");

 /**
 * 显式模式
 */
 private final String str;

 /**
 * 有参数构造器
 *
 * @param str 模式
 */
 private Pattern(String str) {
 this.str = str;
 }

 /**
 * 获取显式模式
 *
 * @return 显式模式
 */
 public String getStr() {
 return str;
 }

}

输入日期时间进行处理:

package hrkj.chapter7.dateTimeFormatter.Test1;

import java.util.Scanner;

/**
 * 输入日期时间进行处理 <br>
 * 2020年1月9日下午7:09:31
 *
 * @author wcf
 * @version 1.0
 */
public class DateTimeFormatterTest {

 /**
 * 闰年正则
 */
 private final static String LEEP_YEAR = Regex.LEEP_YEAR.getStr();
 /**
 * 平年正则
 */
 private final static String COMMON_YEAR = Regex.COMMON_YEAR.getStr();
 /**
 * 时间正则
 */
 private final static String TIME = Regex.TIME.getStr();
 /**
 * 退出正则
 */
 private final static String EXIT = Regex.EXIT.getStr();

 /**
 * 静态初始化块
 */
 static {
 // 输入提示
 Hint.INPUT_DATE_TIME.println();
 // 日期时间格式
 Hint.DATETIMEFORMAT.println();
 // 退出指令
 Hint.CONTINUE_OR_QUIT.println();
 }
 /**
 * 私有构造器
 */
 private DateTimeFormatterTest() {
 // 私有构造器
 // 无法创建本类实例
 }
 /**
 * 输入日期时间
 */
 public static void inoutDateTime() {
 // 扫描器
 Scanner scanner = new Scanner(System.in);
 // 扫描控制台输入
 while (scanner.hasNextLine()) {
  // 接收控制台输入,并去除输入前后的空格
  String str = scanner.nextLine().trim();
  // 对输入的字符进行判断
  if (str.matches(EXIT)) {
  // 程序退出
  Hint.END_OF_PROGRAM.println();
  // 关闭扫描器
  scanner.close();
  // 退出虚拟机
  System.exit(0);
  // 判断平闰年
  } else if (str.matches(LEEP_YEAR + TIME) || str.matches(COMMON_YEAR + TIME)) {
  // 对输入的日期时间字符串进行格式化
  DateTimeFormatterTools.format(str);
  // 格式化后提示
  Hint.CONTINUE_OR_QUIT.println();
  } else {
  // 输入的日期时间不正确
  Hint.INVOKE_DATE_TIME.println();
  // 输入提示
  Hint.INPUT_DATE_TIME.println();
  continue;
  }
 }
 }
}

对输入的日期时间进行处理:

package hrkj.chapter7.dateTimeFormatter.Test1;

import java.time.LocalDateTime;
import java.time.MonthDay;
import java.time.Year;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;

/**
 * 对输入的日期时间进行处理 <br>
 * 2020年1月9日下午8:08:45
 *
 * @author wcf
 * @version 1.0
 */
public class DateTimeFormatterTools {
 /**
 * 年月日 时分
 */
 private static final String YEAR_MONTH_DAY_TIME = Pattern.YEAR_MONTH_DAY_TIME.getStr();
 /**
 * 月日 时分
 */
 private static final String MONTH_DAY_TIME = Pattern.MONTH_DAY_TIME.getStr();
 /**
 * 星期 时分
 */
 private static final String WEEK_TIME = Pattern.WEEK_TIME.getStr();
 /**
 * 上下午 时分
 */
 private static final String TIME = Pattern.TIME.getStr();
 /**
 * 昨天 时分
 */
 private static final String YESTERDAY = Pattern.YESTERDAY.getStr();
 /**
 * 明天 时分
 */
 private static final String TOMORROW = Pattern.TOMORROW.getStr();
 /**
 * 当前年
 */
 private static int currentYear = Year.now().getValue();
 /**
 * 当前月
 */
 private static int currentMonth = MonthDay.now().getMonthValue();
 /**
 * 当前日
 */
 private static int currentDay = MonthDay.now().getDayOfMonth();
 /**
 * 大月
 */
 private static int[] bigMonth = { 1, 3, 5, 7, 8, 10, 12 };
 /**
 * 小月
 */
 private static int[] smallMonth = { 4, 6, 9, 11 };

 /**
 * 私有构造器
 */
 private DateTimeFormatterTools() {
 // 私有构造器,无法实例化
 }

 /**
 * 处理输入的日期时间
 *
 * @param str 输入的日期时间
 */
 public static void format(String str) {
 // 将日期和时间用空格进行分割
 String[] datetime = str.split(" ");
 // 分割成的日期
 String date = datetime[0];
 // 分割成的时间
 String time = datetime[1];
 // 日期分割方式
 String splitter = "";
 // 日期可以用- . / 进行分割
 // 如果包含了-./这三种中的一种,则用这些进行分割
 if (date.contains(".")) {
  splitter = "\\.";
 } else if (date.contains("-")) {
  splitter = "-";
 } else if (date.contains("/")) {
  splitter = "/";
 }
 // 使用日期的分割方式对日期进行分割
 String[] dateString = date.split(splitter);
 // 使用:对时间进行分割,时间只能用:进行分割
 String[] timeString = time.split(":");
 // 时间分割后的数组长度不是2则错误,因为输入的的时间只有时和分
 if (timeString.length != 2) {
  // 时间错误
  Hint.INVOKE_TIME.println();
  return;
 }
 // 日期分割后的数组长度不是3则错误,因为输入的日期要有年,月和日
 if (dateString.length != 3) {
  // 日期错误
  Hint.INVOKE_DATE.println();
  return;
 }
 // 输入的年
 int year = Integer.valueOf(dateString[0]);
 // 输入的月
 int month = Integer.valueOf(dateString[1]);
 // 输入的日
 int day = Integer.valueOf(dateString[2]);
 // 输入的时
 int hour = Integer.valueOf(timeString[0]);
 // 输入的分
 int minute = Integer.valueOf(timeString[1]);
 // 对拆解判断过的字符串进行重新组合
 String str1 = year + splitter + month + splitter + day + " " + hour + ":" + minute;
 // 对组合后的字符串进行解析
 DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("y" + splitter + "M" + splitter + "d" + " H:m");
 // 将字符串解析成日期时间对象
 LocalDateTime parse = LocalDateTime.parse(str1, ofPattern);
 // 同一年
 if (year == currentYear) {
  // 同一月
  if (month == currentMonth) {
  // 同一天
  if (day == currentDay) {
   // 今天
   printDateTime(TIME, parse);
  } else if (day - currentDay == 1) {
   // 明天
   printDateTime(TOMORROW, parse);
  } else if (day - currentDay == -1) {
   // 昨天
   printDateTime(YESTERDAY, parse);
  } else if (day - currentDay >= -7 && day - currentDay <= -2) {
   // 向前一周以星期来表示
   printDateTime(WEEK_TIME, parse);
  } else {
   // 不同天
   printDateTime(MONTH_DAY_TIME, parse);
  }
  // 下个月
  } else if (month - currentMonth == 1) {
  // 如果输入的日是1,则判断当前月和天
  if (day == 1) {
   // 判断是大月小月还是二月,如果当前天数是月份最后一天,则输出明天
   if (Arrays.binarySearch(bigMonth, currentMonth) >= 0 && currentDay == 31) {
   // 明天
   printDateTime(TOMORROW, parse);
   return;
   } else if (Arrays.binarySearch(smallMonth, currentMonth) >= 0 && currentDay == 30) {
   // 明天
   printDateTime(TOMORROW, parse);
   return;
   } else if (currentMonth == 2) {
   // 判断输入的是闰年还是平年
   if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    if (currentDay == 29) {
    // 明天
    printDateTime(TOMORROW, parse);
    return;
    }
   } else {
    if (currentDay == 28) {
    // 明天
    printDateTime(TOMORROW, parse);
    return;
    }
   }
   } else {
   // 使用月日进行输出
   printDateTime(MONTH_DAY_TIME, parse);
   }
  } else {
   // 输入的日不是1,这输出月日时分
   printDateTime(MONTH_DAY_TIME, parse);
  }
  // 上一月
  } else if (month - currentMonth == -1) {
  // 如果当前日是1,则判断输入日是否是上月最后一天
  if (currentDay == 1) {
   // 判断是大月小月还是二月,输入的天数是不是月份的最后一天,是则是昨天
   if (Arrays.binarySearch(bigMonth, month) >= 0 && day == 31) {
   // 昨天
   printDateTime(YESTERDAY, parse);
   return;
   } else if (Arrays.binarySearch(smallMonth, month) >= 0 && day == 30) {
   // 昨天
   printDateTime(YESTERDAY, parse);
   return;
   } else if (month == 2) {
   // 判断是闰年还是平年
   if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    if (day == 29) {
    // 昨天
    printDateTime(YESTERDAY, parse);
    return;
    }
   } else {
    if (day == 28) {
    // 昨天
    printDateTime(YESTERDAY, parse);
    return;
    }
   }
   }
  }
  // 如果当前日不小于7,则输入月日时分,小于7则从当前天往前一周转换为星期
  if (currentDay >= 7) {
   // 输出月日时分
   printDateTime(MONTH_DAY_TIME, parse);
   // 如果当前天小于7,则当前天向前一周转换为星期
  } else if (Arrays.binarySearch(bigMonth, month) >= 0 && 31 - day + currentDay < 7) {
   // 年月日转换为星期
   printDateTime(WEEK_TIME, parse);
  } else if (Arrays.binarySearch(smallMonth, month) >= 0 && 30 - day + currentDay < 7) {
   // 年月日转换为星期
   printDateTime(WEEK_TIME, parse);
  } else if (month == 2) {
   // 判断是闰年还是平年
   if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
   if (29 - day + currentDay < 7) {
    // 年月日转换为星期
    printDateTime(WEEK_TIME, parse);
   } else {
    // 如果向前超出了一周输出月日时分
    printDateTime(MONTH_DAY_TIME, parse);
   }
   } else {
   if (28 - day + currentDay < 7) {
    // 年月日转换为星期
    printDateTime(WEEK_TIME, parse);
   } else {
    // 如果向前超出了一周输出月日时分
    printDateTime(MONTH_DAY_TIME, parse);
   }
   }
  } else {
   // 当前天向前超出了一周输出月日时分
   printDateTime(MONTH_DAY_TIME, parse);
  }
  } else {
  // 不同月,输出月日时分
  printDateTime(MONTH_DAY_TIME, parse);
  }
 } else {
  // 不同年,输出年月日时分
  printDateTime(YEAR_MONTH_DAY_TIME, parse);
 }
 }

 /**
 * 格式化结果
 *
 * @param pattern 模式字符串
 * @param datetime 时间
 */
 private static void printDateTime(String pattern, LocalDateTime datetime) {
 // 通过模式字符串对时间进行格式化
 DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern(pattern);
 // 打印格式化后的时间
 System.out.println("格式化结果:\n\t" + ofPattern.format(datetime));
 }

}

代码测试结果:

请输入日期时间:
常用格式:xxxx-xx-xx xx:xx
   xxxx/xx/xx xx:xx
   xxxx.xx.xx xx:xx
exit:程序退出
请输入:
2020-1-11 12:22
格式化结果:
 下午 12:22
exit:程序退出
请输入:
2020-1-11 2:22
格式化结果:
 上午 02:22
exit:程序退出
请输入:
2020-1-10 1:22
格式化结果:
 昨天 01:22
exit:程序退出
请输入:
2020-1-7 12:22
格式化结果:
 周二 12:22
exit:程序退出
请输入:
2020-1-12 12:22
格式化结果:
 明天 12:22
exit:程序退出
请输入:
2020-1-13 12:22
格式化结果:
 1月13日 12:22
exit:程序退出
请输入:
2020-2-22 12:22
格式化结果:
 2月22日 12:22
exit:程序退出
请输入:
2019-12-31 12:22
格式化结果:
 2019年12月31日 12:22
exit:程序退出
请输入:

更多情况测试,或者代码简化,请自行探索测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java8新特性时间日期库DateTime API及示例详解

    Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和SimpleDateFormat等API来处理日期相关操作,这篇文章你一定不要错过.来刷新你的知识库吧! 背景 Java对日期.日历及时间的处理一直以来都饱受诟病,比如java.util.Date和java.util.Calendar类易用性差,不支持时区,非线程安全:还有用于格式化日期的类DateFormat也是非线程安全的等问题. J

  • Java日期时间及日期相互转换实现代码

    这篇文章主要介绍了Java日期时间及日期相互转换实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实例化 Date 对象. 第一个构造函数使用当前日期和时间来初始化对象. Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseException

  • Java计算两个日期时间之间的天数最简方法

    有一种low的方式,就是你把两个时间都换成秒,然后除以一天的秒数,然后向上取整,就是算的天数.但是这么实现太low啦. jdk有高级的API,我们为啥还要自己去实现呢,问题就是我们不知道. 所以,我在这写个笔记,记录下,jdk 1.8 是怎么做的. /** * 计算两个时间点之间的天数 */ private static void getBetweenDay() { LocalDate start = LocalDate.of(2018, 2, 12); LocalDate now = Loca

  • Java将日期类型Date时间戳转换为MongoDB的时间类型数据

    存了一个时间类型(Date)的数据到mongo数据库中,但是前台显示的是一串数字.继而引发了如下问题: Java里面如何把 时间戳 1477387464495 转换为 2016-10-25 17:24:24 期望格式的日期字符串. 因为业务需要,在model里面有个Date类型的字段,然后需要按这个时间类型排序.但是在后台处理完之后,返回到前台,发现时间变成了13位数字,学名叫时间戳.不是我想要的具体时间,不适合展示啊.具体有如下 mongo数据库中存储时间类型的数据具体如下: 然后debug的

  • java获取指定开始时间与结束时间之间的所有日期

    本文实例为大家分享了java获取指定开始时间与结束时间之间的所有日期的具体代码,供大家参考,具体内容如下 import java.text.SimpleDateFormat; import java.util.Calendar; public class TimerTest { public static void main(String[] args) throws Exception { String beginDate = "2016-07-16";//开始时间 String e

  • Java日期与时间类原理解析

    这篇文章主要介绍了Java日期与时间类原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基础知识 日期: 类似于 2018-12-12 时间: 类似于 2018-12-12 12:12:12 时刻: 类似于 2018-12-12 12:12:12 地区: 计算机中的 Locale, 如 zh_CN, en_US 等, 影响着对于日期, 时间, 货币等格式的显示 EpochTime: 从 1970 年 1 月 1 日 UTC+00:00 到

  • java实现的日期时间转换工具类完整示例

    本文实例讲述了java实现的日期时间转换工具类.分享给大家供大家参考,具体如下: 最基础的东西,总结一下,下次用的时候就方便一些了.废话不多说,直接贴代码: package com.incar.base.util; import com.incar.base.exception.BaseRuntimeException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDat

  • java根据开始时间结束时间计算中间间隔日期的实例代码

    具体代码如下所述: import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class Test { public static List<String> findDates(String stime,

  • Java使用DateTimeFormatter格式化输入的日期时间

    要求: 用DateTimeFormatter实现: 用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间 分析: 1.时间的常用格式为: xxxx-xx-xx xx:xx xxxx/xx/xx xx:xx xxxx.xx.xx xx:xx 等格式 2.微信显式时间格式为: 今天显式: 00:01 - 23:59 ; 昨天显式: 昨天 01:01 ; 前天显式: 周几

  • Java实现纪元秒和本地日期时间互换的方法【经典实例】

    本文实例讲述了Java实现纪元秒和本地日期时间互换的方法.分享给大家供大家参考,具体如下: Java版本:1.8开始 import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; /** * Created by Frank */ public class CurrentDatetime { public static void main(String[] args) { // 纪元秒和本地日

  • Java使用DateTimeFormatter实现格式化时间

    用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间.用DateTimeFormatter实现,功能如下: 同年: 不同年: 同月:月日+上午/下午+时分 同年不同月:月日+时分 今天:上午/下午+时分 明天:明天+上午/下午+时分 昨天:昨天+上午/下午+时分 包括今天在内的一周内:星期+上午/下午+时分 首先看一下测试类: package hrkj; import

  • VBS日期(时间)格式化函数代码

    核心代码 currentTimeStr1 = CStr(Year(Now()))&"-"&Right("0"&Month(Now()),2)&"-"&Right("0"&Day(Now()),2)&" "&Right("0"&Hour(Now()),2)&":"&Right(&qu

  • Dos下日期时间的引用实现代码

    %date%输出的是:星期* yyyy/mm/dd (如:星期四 2008/12/18) 引用格式:%date:~x,y% x=起始坐标,y=截取字符个数(坐标从0到13) 如: %date:~4,4% -->yyyy %date:~9,2% -->mm %date:~12,2% --dd 如取出格式为YYYYMMDD的日期:%date:~4,4%%date:~9,2%%date:~12,2% -->20081218 %time%输出的是:hh24:mi:ss.ms (如:10:49:1

  • Java使用DateFormatter格式化日期时间的方法示例

    本文实例讲述了Java使用DateFormatter格式化日期时间的方法.分享给大家供大家参考,具体如下: Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; /** * Created by Fra

  • java日期时间格式化@JsonFormat与@DateTimeFormat的使用

    如果要使用 @JsonFormat 这个注解的话,需要在项目中添加 jackson 相关的依赖包; 因为 @JsonFormat 注解不是 Spring 自带的注解,所以使用该注解前需要添加 jackson 相关的依赖包.当然,如果是 SpringBoot 项目就不需要自己手动添加依赖了,因为在 spring-boot-start-web 下已经包含了 jackson 相关依赖. <!-- https://mvnrepository.com/artifact/com.fasterxml.jack

  • Java中的日期时间处理及格式化处理

    目录 Date类 Calendar 类 DateFormat 类 SimpleDateFormat 类 Date类 在java.util.Date包中封装了许多现在的日期和时间, 构造函数: Date类表示特定的时间,精确到毫秒.在Java1.1之前,Date类中有好几个函数,允许把时间解释成年月日分秒,也允许解析和格式化日期字符串,由于这些函数不能实现国际化,从Java1.1之后,使用 Calendar 类实现日期和时间字段之间转换. Date d=new Date(); //使用当前日期和时

  • Java日期时间使用方法汇总

    一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中,操作日期主要涉及到一下几个类:  1.java.util.Date         类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的把日期解释为年.月

  • java日期时间操作工具类

    本文实例为大家分享了java日期时间操作工具类,供大家参考,具体内容如下 虽然jdk1.8开始,加入了time包,里面对时区,本地化时间,格式化,以及时间等做了很好的封装,但仍然要写一个工具类.大家看着用.应该没有bug.如果发现了,请您一定告知,互相学习!好了,上代码: package com.wdy.tools.utils.timeutil; import java.text.DateFormat; import java.text.SimpleDateFormat; import java

随机推荐