介绍calendar类以及用它编写简单功能“判断对方发的消息时长”

引言

这里是对java的Calendar类的练习使用,为了更加熟悉,写了一个小的功能,判断对方给你发的消息过了多长时间。

calendar类

Calendar 类是 Java 中用于处理日期和时间操作的抽象类。它提供了一个方法来执行日期和时间字段之间的转换,以及对日期和时间进行各种操作,如增加或减少天数、小时、分钟等。Calendar 类是日历操作的一个通用框架,它可以用于执行日期计算和日期格式化。

以下是一些Calendar 类的主要特点和用法:

  1. 获取 Calendar 实例:您可以通过Calendar.getInstance()方法获取一个Calendar实例,该实例将根据当前时区和区域设置返回一个具体的子类实例(例如GregorianCalendar)。
Calendar calendar = Calendar.getInstance();
  1. 获取日期字段的值:您可以使用get方法获取特定日期字段(如年、月、日、小时、分钟等)的值。
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 0-based (0 for January, 11 for December)
int day = calendar.get(Calendar.DAY_OF_MONTH);
  1. 设置日期字段的值:您可以使用set方法设置特定日期字段的值。
calendar.set(Calendar.YEAR, 2023);
calendar.set(Calendar.MONTH, Calendar.MARCH); // 2 for March (0-based)
calendar.set(Calendar.DAY_OF_MONTH, 15);
  1. 增加或减少日期字段的值:使用add方法,可以增加或减少特定日期字段的值,如增加一天、减少一个小时等。
calendar.add(Calendar.DAY_OF_MONTH, 7); // 增加7天
calendar.add(Calendar.HOUR, -3); // 减少3小时
  1. 日期字段的转换Calendar 类可以将日期字段值转换为毫秒数,以便进行日期比较和计算。
long timeInMillis = calendar.getTimeInMillis();
  1. 日期格式化:您可以使用SimpleDateFormat类或其他日期格式化工具将Calendar 对象中的日期信息格式化为特定的日期字符串。

Calendar 类是处理日期和时间操作的强大工具,可以用于计算日期差异、解析日期字符串、执行日期比较等多种任务。然而,请注意,Java 8及以后的版本引入了java.time包,提供了更现代和易于使用的日期和时间处理类,如LocalDateLocalDateTime,通常更适合用于新的日期和时间操作。

简单功能“判断对方发的消息时长”
package cn.wange;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class OutCalendar {
    public static void main(String[] args) throws ParseException {
        Calendar cc = Calendar.getInstance();
        long timeInMillis = cc.getTimeInMillis();
        //这里模拟对方发的消息,时间,内容
        String time = "2023-10-11 19:18:00";
        String content = "你好";
        //将字符串时间转换为Date类型数据
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date parsed = simpleDateFormat.parse(time);
        //获取到本地现在的时间戳在减去当时的时间戳。
        long timeDifference = System.currentTimeMillis() - parsed.getTime();
        //if-else语句进行判断两个时间戳相减后转换为分、时、天,从而做到动态输出。
        if (timeDifference / 1000 / 60 < 1)
            System.out.printf("刚刚:%s", content);
        else if (timeDifference / 1000 / 60 >= 1 && timeDifference / 1000 / 60 < 60) {
            System.out.printf("%d分钟前:%s", timeDifference / 1000 / 60, content);
        } else if (timeDifference / 1000 / 60 / 60 >= 1 && timeDifference / 1000 / 60 / 60 < 24) {
            System.out.printf("%d小时前:%s", timeDifference / 1000 / 60 / 60, content);
        } else if (timeDifference / 1000 / 60 / 60 / 24 >= 1 && timeDifference / 1000 / 60 / 60 / 24 < 7) {
            System.out.printf("%d天前:%s", timeDifference / 1000 / 60 / 60 / 24, content);
        } else {
            System.out.printf("%tF %<tT:%s", parsed, content);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值