首页 > 基础资料 博客日记

日期和时间

2024-09-12 16:30:04基础资料围观85

文章日期和时间分享给大家,欢迎收藏Java资料网,专注分享技术知识

  • 日期和时间继承关系图

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


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类

  • 格式化日期时间 和 解析日期时间

public static void main(String[] args) {
    //获取本地日期时间
    LocalDateTime localDateTime = LocalDateTime.now();//  2024-09-12T14:40:40.161
    //获取DateTimeFormatter对象,并且自定义日期时间的格式
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");

    //格式化:日期 --> 字符串
    String timeStr = dateTimeFormatter.format(localDateTime);//  2024-09-12 02:43:34

    //解析:字符串 --> 日期
    //TemporalAccessor parse = dateTimeFormatter.parse("2020-09-10 10:10:50");

    timeStr = "2020-09-10 10:10:50";
    DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    LocalDateTime localDateTime02 = LocalDateTime.parse(timeStr, formatter2);
    System.out.println(localDateTime02);//  2020-09-10T10:10:50
}

应用实例

  • 三天打鱼两天晒网。判断在指定日期是在打渔,还是在晒网。从1990-01-01开始。
    /**
     * 思路分析:
     * 第一步:计算出1990-01-01到指定日期,一共多少天
     * 第二步:总天数%5,余数是1、2、3表示打鱼。4、0晒网
     */
    public static void main(String[] args) throws ParseException {
    //开始时间转换成毫秒值
    String timeStr = "1990-01-01";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = simpleDateFormat.parse(timeStr);
    long startTime = date.getTime();

    //结束时间转换成毫秒值
    String endTimeStr="2020-09-21";
    Date endDate = simpleDateFormat.parse(endTimeStr);
    //long endTime = new Date().getTime();
    long endTime = endDate.getTime();
    int swapTempTime=1000*60*60*24;
    double allDays=(endTime-startTime)/swapTempTime;//获取总天数

    //判断是否是一个小数。如果是小数 总天数+1
    String str = allDays + "";
    String[] split = str.split("\\.");
    if (!"0".equals(split[1])) {
        System.out.println(allDays+" 是一个小数");
        //总天数+1
        allDays += 1;
    }

    //总天数对5取模。1、2、3打渔,0、4晒网
    int result=(int)allDays%5;
    switch (result){
        case 1:
        case 2:
        case 3:
            System.out.println("正在打渔.....");
            break;
        case 0:
        case 4:
            System.out.println("今天休息。晒网");
            break;
        default:
            System.out.println("出错了!");
    }
}


文章来源:https://www.cnblogs.com/meitianyouheng/p/18410467
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云