日期和时间

守听  金牌会员 | 2024-9-12 14:34:47 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 877|帖子 877|积分 2631


  • 日期和时间继续关系图

  • 获取时间戳(当前时间毫秒值)

util.Date


sql.Date


  • java.sql.Date对应的是数据库中日期类型的变量

SimpleDateFormat类


  • format( ):日期 转 字符串
  • parse( ):  字符串 转 日期
日期 转 字符串


字符串 转 日期


字符串 转sql.Date


  • 需要先将 字符串 转换成 uitli.date
  • 再将uitli.date 转成 sql.date

Calendar日历类


  • Calendar是一个抽象类,使用Calendar.getInstance( )方法获取对象
  • 获取月份时:一月是0,二月是1,以此类推,12月是11
  • 获取星期时:周日是1,周二是2 ,周六是7

java.time


  • LocalDate类: 本地日期
  • LocalTime类: 本地时间
  • LocalDateTime类:本地日期和时间
LocalDate类、LocalTime类、LocalDateTime类



Instant类


  • 时间线上的一个瞬时点。表示自1970年1月1日0时0分0秒(UTC)开始的秒数。

DateTimeFormatter类


  • 格式化日期时间 和 解析日期时间
  1. public static void main(String[] args) {
  2.     //获取本地日期时间
  3.     LocalDateTime localDateTime = LocalDateTime.now();//  2024-09-12T14:40:40.161
  4.     //获取DateTimeFormatter对象,并且自定义日期时间的格式
  5.     DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
  6.     //格式化:日期 --> 字符串
  7.     String timeStr = dateTimeFormatter.format(localDateTime);//  2024-09-12 02:43:34
  8.     //解析:字符串 --> 日期
  9.     //TemporalAccessor parse = dateTimeFormatter.parse("2020-09-10 10:10:50");
  10.     timeStr = "2020-09-10 10:10:50";
  11.     DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  12.     LocalDateTime localDateTime02 = LocalDateTime.parse(timeStr, formatter2);
  13.     System.out.println(localDateTime02);//  2020-09-10T10:10:50
  14. }
复制代码
应用实例


  • 三天捕鱼两天晒网。判断在指定日期是在打渔,还是在晒网。从1990-01-01开始。
  1.     /**
  2.      * 思路分析:
  3.      * 第一步:计算出1990-01-01到指定日期,一共多少天
  4.      * 第二步:总天数%5,余数是1、2、3表示打鱼。4、0晒网
  5.      */
  6.     public static void main(String[] args) throws ParseException {
  7.     //开始时间转换成毫秒值
  8.     String timeStr = "1990-01-01";
  9.     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  10.     Date date = simpleDateFormat.parse(timeStr);
  11.     long startTime = date.getTime();
  12.     //结束时间转换成毫秒值
  13.     String endTimeStr="2020-09-21";
  14.     Date endDate = simpleDateFormat.parse(endTimeStr);
  15.     //long endTime = new Date().getTime();
  16.     long endTime = endDate.getTime();
  17.     int swapTempTime=1000*60*60*24;
  18.     double allDays=(endTime-startTime)/swapTempTime;//获取总天数
  19.     //判断是否是一个小数。如果是小数 总天数+1
  20.     String str = allDays + "";
  21.     String[] split = str.split("\\.");
  22.     if (!"0".equals(split[1])) {
  23.         System.out.println(allDays+" 是一个小数");
  24.         //总天数+1
  25.         allDays += 1;
  26.     }
  27.     //总天数对5取模。1、2、3打渔,0、4晒网
  28.     int result=(int)allDays%5;
  29.     switch (result){
  30.         case 1:
  31.         case 2:
  32.         case 3:
  33.             System.out.println("正在打渔.....");
  34.             break;
  35.         case 0:
  36.         case 4:
  37.             System.out.println("今天休息。晒网");
  38.             break;
  39.         default:
  40.             System.out.println("出错了!");
  41.     }
  42. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表