JavaSE——常用API进阶二(4/8)-秒杀案例(需求与分析、代码与运行结果)、Calendar(Calendar日历类的常见方法、用法示例)

简介: JavaSE——常用API进阶二(4/8)-秒杀案例(需求与分析、代码与运行结果)、Calendar(Calendar日历类的常见方法、用法示例)

秒杀案例

学习了前面的Date类和SimpleDateFormat类,现在我们就用它们做一个小案例。

需求与分析

需求

  • 小贾下单并付款的时间为:2023年11月11日 0:01:18
  • 小皮下单并付款的时间为:2023年11月11日 0:10:51
  • 秒杀开始时间:2023年11月11日 0:0:0
  • 秒杀结束时间:2023年11月11日 0:10:0
  • 请用代码说明这两位同学有没有参加上秒杀活动?

第一步我们要先把秒杀开始时间、结束时间、小贾下单时间和小皮下单时间都以字符串的格式存储到程序中



要判断两位同学是否成功参与了秒杀活动,就要比较时间值,而只有毫秒值是最好比较的,所以接下来我们的目标就是将字符串一步一步转换成毫秒值。

第二步,先把字符串解析成日期对象。



第三步,把日期对象转换成时间毫秒值来进行比较,判断是否成功参与到了秒杀活动


代码与运行结果

public class Test {
    public static void main(String[] args) throws ParseException {
        //1.把开始时间、结束时间、小贾下单时间、小皮下单时间拿到程序中来。
        String start = "2023年11月11日 0:0:0";
        String end = "2023年11月11日 0:10:0";
        String xj ="2023年11月11日 0:01:18";
        String xp = "2023年11月11日 0:10:57";
 
        //2、把字符串的时间解析成日期对象。
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date startDt = sdf.parse(start);
        Date endDt = sdf.parse(end);
        Date xjDt = sdf.parse(xj);
        Date xpDt = sdf.parse(xp);
 
        //3、把日期对象转换成时间毫秒值来判断,开始判断小皮和小贾是否秒杀成功。
        long startTime = startDt.getTime();
        long endTime = endDt.getTime();
        long xjTime = xjDt.getTime();
        long xpTime = xpDt.getTime();
 
        if(xjTime >= startTime && xjTime <= endTime){
            System.out.println("小贾您秒杀成功了!");
        }else{
            System.out.println("小贾您秒杀失败了~");
        }
 
        if(xpTime >= startTime && xpTime <= endTime){
            System.out.println("小皮您秒杀成功了!");
        }else{
            System.out.println("小皮您秒杀失败了~");
        }
    }
}

运行结果:



完成了这个小案例之后,我们来学习Calendar。

对于某些需求,例如将2024年08月10日增加一个月,我们用上面的思路来解决,需要以下步骤:

  1. 定义字符串记住:2024年08月10日
  2. 把字符串时间解析成Date日期对象
  3. 通过Date日期对象获取2024年8月10日的毫秒值
  4. 增加一个月的毫秒值:1000*60*60*24*30
  5. 再格式化时间毫秒值得到结果:2024年9月10日

而Calendar类就可以把这个问题简单化,直接单独获取、修改时间中的年、月、日、时、分、秒等。

Calendar

  • 代表的是系统此刻时间对应的日历。
  • 通过它可以单独获取、修改时间中的年、月、日、时、分、秒等。

Calendar日历类的常见方法 图片.png

用法示例

public class Test {
    public static void main(String[] args) throws ParseException {
        System.out.println("1.得到系统刺客时间对应的日历对象");
        Calendar now = Calendar.getInstance();
        System.out.println(now);
 
        System.out.println();
 
        System.out.println("2.获取日历中的某个信息");
        int year = now.get(Calendar.YEAR);
        System.out.println(year);
 
        int days = now.get(Calendar.DAY_OF_YEAR);
        System.out.println(days);
 
        System.out.println();
 
        System.out.println("3.拿到日历中记录的日期对象");
        Date d = now.getTime();
        System.out.println(d);
 
        System.out.println();
 
        System.out.println("4.拿到时间毫秒值");
        long time = now.getTimeInMillis();
        System.out.println(time);
 
        System.out.println();
 
        System.out.println("5.修改日历中的某个信息");
        now.set(Calendar.MONTH,9);
        now.set(Calendar.DAY_OF_YEAR,125);
        System.out.println(now);
 
        System.out.println();
 
        System.out.println("6.为某个信息增加或者减少多少");
        now.add(Calendar.DAY_OF_YEAR,100);      //增加100天
        now.add(Calendar.DAY_OF_YEAR,-10);      //减少10天
        now.add(Calendar.DAY_OF_MONTH,-10);
        now.add(Calendar.HOUR,12);
        System.out.println(now);
    }
}

运行结果:



注意:Calendar是可变对象,一旦修改后其对象本身表示的时间将产生变化。


END



目录
相关文章
|
算法 API 数据安全/隐私保护
电商 API 双平台实战:淘宝 item.get + 京东 item_detail 对接指南(附可复用代码 + 问题排查)
本文详细解析了淘宝和京东双平台API对接的核心流程,涵盖资质申请、凭证获取、签名生成、高频接口调用及常见问题解决方案,助力开发者高效实现商品数据同步与管理。
|
数据采集 缓存 API
1688 API 实战指南:搞定批发场景的 3 大核心难题(附签名代码与避坑清单)
本文深入解析了1688 API 在批发场景下的三大核心难题及解决方案,涵盖签名机制、商品数据处理与订单同步等高频问题,提供可复用代码与避坑清单,助你高效对接1688平台。
|
JSON API 数据格式
洋码头商品 API 示例指南(Python 实现)
洋码头是国内知名跨境电商平台,提供商品搜索、详情、分类等API接口。本文详解了使用Python调用这些API的流程与代码示例,涵盖签名生成、请求处理及常见问题解决方案,适用于构建选品工具、价格监控等跨境电商应用。
|
边缘计算 监控 Java
跨境电商 API 对接避坑指南:亚马逊 SP-API 超时问题的 5 种解决方案(附重试代码模板)
在对接亚马逊 SP-API 时,超时问题常导致订单延迟、库存失败,影响运营。本文总结某 3C 品牌实战经验,详解超时的 3 大根源与 5 大解决方案,涵盖动态超时、重试机制、请求拆分、并发控制与边缘加速,并附可复用 Python 代码,助你将超时率从 20% 降至 1% 以下。
|
安全 API 数据安全/隐私保护
低代码革命:API无代码集成如何让企业“3天上线一个生态”?
在数字化转型浪潮中,API成为释放数据价值、提升企业效率的核心。本文详解API架构设计、安全实践与跨平台集成,为CTO提供效率提升指南,涵盖微服务、安全认证、协议选择、低代码集成及未来趋势,助力企业构建敏捷、安全、高效的数字生态。
|
自然语言处理 供应链 前端开发
深度解析与技术实践:高效调用淘宝商品评论API的策略与代码实现
本文深入解析淘宝开放平台商品评论接口(Taobao.item_review),涵盖接口功能、调用逻辑与实战代码,助力开发者高效获取用户评价数据,提升电商数据分析能力。
|
存储 监控 前端开发
淘宝商品详情 API 实战:5 大策略提升店铺转化率(附签名优化代码 + 避坑指南)
本文深入解析淘宝商品详情API的核心字段与实战应用,分享如何通过动态定价、库存预警、差评控制等5大策略提升电商转化率。结合300+店铺实战经验,提供优化代码与避坑指南,助力开发者与运营者实现数据驱动的精细化运营。
|
API 开发工具 开发者
客流类API实测:门店到访客群画像数据
本文介绍了一个实用的API——“门店到访客群画像分布”,适用于线下实体门店进行客群画像分析。该API支持多种画像维度,如性别、年龄、职业、消费偏好等,帮助商家深入了解顾客特征,提升运营效率。文章详细说明了API的参数配置、响应数据、接入流程,并附有Python调用示例,便于开发者快速集成。适合零售、餐饮等行业从业者使用。
客流类API实测:门店到访客群画像数据
|
测试技术 API 开发者
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
|
缓存 算法 API
从 0 实现 API 接口签名验证系统:基于 HMAC-SHA256 的防篡改方案(附 Python 全代码)
本文介绍基于 的 API 接口签名验证系统,实现防篡改与防重放攻击,包含完整设计原理、签名生成规则及可运行的 Python 客户端与服务端代码,并提供安全性优化与部署建议。