jdk7新增时间类Date,SimpleDateFormat,Calendar

news2025/1/18 11:57:08

Date







        //需求1 打印时间远点开始一年后的时间

        extracted();

        //需求2 定义任意两个date对象  比较那个时间在前 哪个在后

        Random r=new Random();

        Date date1=new Date(Math.abs(r.nextInt()));
        Date date2=new Date(Math.abs(r.nextInt()));

        System.out.println(date1);
        System.out.println(date2);
        if (date1.getTime()> date2.getTime()){
            System.out.println("date1时间大");
        }else{
            System.out.println("date2时间大");
        }
    }

    private static void extracted() {
        //获取时间原点
        Date d=new Date(0l);

        //获取毫秒值
        long time = d.getTime();
        //获取一年的毫秒值
        time=time+1000l*60*60*24*365;

        d.setTime(time);
        System.out.println(d);

小结

在这里插入图片描述

SimpleDateFormat

  • 格式化:把时间变成我们喜欢的格式
  • 解析:把字符串表示的时间变成Date对象(然后用getTime方法获取毫秒值)

在这里插入图片描述
在这里插入图片描述

  //空参构造
        SimpleDateFormat sdf1=new SimpleDateFormat();
        //new出一个原点时间
        Date d1=new Date();
        //这个需要传入你要改变的时间
        String str1 = sdf1.format(d1);
        System.out.println(str1);//2023/10/12 下午12:51  空参构造默认模式


        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EE");
        //new出一个原点时间
        Date d2=new Date();
        //这个需要传入你要改变的时间
        String str2 = sdf2.format(d2);
        System.out.println(str2);
        //2023-10-12 12:57:02 周四 周四 这是用带参构造生成的

格式化

 //解析 parse 字符串获取日期对象
        String s="2023-10-12 12:57:02";
        SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
            Date date = sdf3.parse(s);
            System.out.println(date.getTime());
            //1697086622000 打印结果

解析

练习1

把2000-11-11 格式改为 2000年11月11日

  

        String s="2000-11-11";


  

            //解析
            SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");

            Date date = sdf1.parse(s);


            //格式化
            SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd");
            String s1 = sdf2.format(date);
            System.out.println(s1);

练习2

在这里插入图片描述

  //小假下单付款时间 2023年11月11号 0:01:00
        //秒杀开始时间 2023年11月11号 0:0:0
        //秒杀结束时间 2023年11月11号 0:10:0


        String buy="2023年11月11号 0:11:00";
        String start="2023年11月11号 0:0:0";
        String end="2023年11月11号 0:10:0";


        //解析得到 date对象
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd号 HH:mm:ss");
        Date buyDate = sdf1.parse(buy);
        Date startDate = sdf1.parse(start);
        Date endDate = sdf1.parse(end);

        //用对想得到毫秒值
        if(buyDate.getTime()>=startDate.getTime()&&buyDate.getTime()<=endDate.getTime()){
            System.out.println("秒杀成功");
        }else{
            System.out.println("秒杀失败");
        }

Calendar

以往的知识把时间加一个月比较复杂 这时候这个Calendar就发挥了作用
在这里插入图片描述
在这里插入图片描述


import java.util.Calendar;
import java.util.Date;

public class api171 {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();//日历类是一个抽象类 所以不能直接new出来  可以这样获取日历对象
        //底层原理 他会把事件中的纪元 年月日分秒星期等都存在一个数组里
        //细节二:  月份打印出来的范围是0到11  0相当于1月
        //星期在老外眼中星期日相当于i星期一


        //修改一下日历代表的事件
        Date d=new Date(0l);//代表new出来一个事件是1970哪个
        c.setTime(d);
        System.out.println(c);


        //getTimeMillis方法与上同理不做演示




        //add方法第一个为类型  第二个为要加的数量
        c.add(Calendar.MONTH,1);
        //打印结果1970
        //2
        //1
        //星期日


        int year = c.get(Calendar.YEAR);
        System.out.println(year);//单独获取年份
        int month = c.get(Calendar.MONTH)+1;
        System.out.println(month);
        int date = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(date);//获取日期
        int week = c.get(Calendar.DAY_OF_WEEK);
        System.out.println(getWeek(week));//获取是星期  但是是1234567这种形式  我们想要的是星期一这种形式 用一个方法实现


        //1970
        //1
        //1
        //星期四  打印结果
        //第一个为要修改的类型  第二个为修改的结果

        c.set(Calendar.YEAR,2000);
        //2000
        //1
        //1
        //星期四
        //其他也是一样的方法
        
    }
    public static String getWeek(int index){

        String arr[]={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        //0索引为空 因为0索引不用填写   1索引对应星期天.  是因为老外的星期一是 我们的星期天
        return arr[index];
    }
}

小结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1107492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在迪拜举行的 GITEX GLOBAL 2023 IT 展览会上,Positive Technologies 荣获两项大奖!

&#x1f3c6; 在迪拜举行的 GITEX GLOBAL 2023 IT 展览会上&#xff0c;Positive Technologies 荣获两项大奖。这两个奖项都是影响力网络安全领域的最佳供应商。 &#x1f3f5; Future Enterprise Awards 2023 是该地区 IT 行业最重要的奖项之一。该奖项每年颁发给对信息技术…

python---三目运算符

在Python中三目运算符也叫三元运算符&#xff0c;其主要作用&#xff1a;就是用于 简化if...else...语句。 基本语法&#xff1a; 原 if 条件判断: # 语句段1 else: # 语句段2 新-----三目运算符/三元运算符 语句段1 if 条件判断 else 语句段2 案例 输入两个数…

网站如何优化加速,让网站降低延迟

优化网站架构 精简页面加载过程&#xff1a;通过消除冗余代码和不必要的图像&#xff0c;并采用CDN资源分发&#xff0c;以减少加载时间。 精心规划内容架构&#xff1a;通过使用恰当的标题和描述&#xff0c;使搜索引擎能够快速理解页面的内涵。 选择性能出众的前端框架&…

【QT】常用控件——按钮组

继承Widget PushButton 设置图片&#xff0c;先导入图片资源&#xff0c;见&#xff1a;【QT】资源文件导入_复制其他项目中的文件到qt项目中_StudyWinter的博客-CSDN博客 在布局中添加图片 调整尺寸 toolButton 显示图片、文本 显示图片&#xff08;图片和文字都有时&#…

git学习——第5节 远程仓库

自行设置&#xff1a;远程仓库 - 廖雪峰的官方网站 (liaoxuefeng.com) 添加远程库 现在的情景是&#xff0c;你已经在本地创建了一个Git仓库后&#xff0c;又想在GitHub创建一个Git仓库&#xff0c;并且让这两个仓库进行远程同步&#xff0c;这样&#xff0c;GitHub上的仓库既…

排查手机应用app微信登录问题不跳转失败原因汇总及其解决方案

经过最近我发的文章,我个人觉得解决了不少小问题,因为最近很小白的问题已经没有人私聊问我了,我总结了一下排查手机应用app微信登录问题不跳转失败的原因汇总及其解决方案在这篇文章中,分析微信登录不跳转的原因,并提供解决方案。希望通过这篇文章,能够帮助大家顺利解决这…

Python Connect SQLServer 2008

Macos&#xff08;经过了两天&#xff0c;无数次的方法验证&#xff0c;寻找各种资料&#xff0c;总结如下&#xff09; brew install freetds0.91 如果出现错误就进行手工安装 brew install freedts0.91 出错。 linqllinqldeMBP-2 / % brew install freetds0.91 Warning: No …

css-水滴登录页

效果图&#xff1a; html <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><link type"text/css" rel"stylesheet" href"login.css" /></head><body><…

从零开始的C语言学习第十九课:C语言内存函数

目录 1. memcpy使用和模拟实现 2. memmove使用和模拟实现 3. memset函数的使用 4. memcmp函数的使用 1. memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destinati…

sylar高性能服务器-配置(P9)代码解析+调试分析

文章目录 一、代码解析1.1配置基类(ConfigVarBase)1.2配置参数类(ConfigVar)1.3配置管理类(Config) 二、代码调试2.1SYLAR_LOG_INFO(SYLAR_LOG_ROOT())2.2ConfigVart调试 本节内容主要讲诉了sylar高性能服务器视频P9的内容&#xff0c;并给出了代码逐步调试的步骤和结果。本节内…

Linux块设备缓存Bcache使用

1 Bcache简介 Bcache是Linux内核块层cache&#xff0c;它使用SSD来作为HDD硬盘的cache&#xff0c;从而起到加速作用。Bcache内核模块仅在Linux 3.10及以上版本支持&#xff0c;因此使用Bcache&#xff0c;需要将内核升级到3.10及以上版本&#xff0c;并在内核配置项中打开Bca…

vue3后台管理系统之layout组件的搭建

1.1静态布局 <template><div class"layout_container"><!-- 左侧导航 --><div class"layout_slider"></div><!-- 顶部导航 --><div class"layout_tabbar"></div><!-- 内容展示区 --><…

【Linux】Ubuntu存储分析

文章目录 前言1 如何对系统进行存储分析2 如果出现存储空间不足的警告应该怎么办&#xff1f;3 存储空间太小导致不能开机怎么办&#xff1f;4 如何对系统进行扩容 前言 因为要编译一个ARM架构的Linux SDK&#xff0c;结果没想到这个SDK解压编译完大小远超我想象&#xff0c;直…

【算法|前缀和系列No.5】leetcode1314. 矩阵区域和

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【Leetcode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

【茫茫架构路】1. Class File字节码文件解析

本文所有内容的JDK版本为 OpenJDK 11 JDK11 Class File官方说明。 Java解析字节码文件源码参考&#xff0c;以下为部分字节码解析源码展示。 public ClassFile(DataInputStream in) {try {//magic: 0xCAFEBABEthis.magic ClassReader.readInt(in);System.out.println("m…

Vue 异步更新 -- $nextTick

Vue 异步更新 – $nextTick **创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day04\准备代码\16-$nextTick vue --version vue crea…

Spring(四)

1、Spring6整合JUnit 1、JUnit4 User类: package com.songzhishu.spring.bean;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;/*** BelongsProject: Spring6* BelongsPackage: com.songzhishu.spring.bean*…

UI自动化测试的痛点

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验&#xff0c;由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的&#xff0c;然后在慢慢的接触 U…

微信隐秘功能:如何巧妙隐藏好友和消息的方法教程

在日常使用微信的过程中&#xff0c;难免会有些私密内容或特定的联系人和群聊希望能够暂时隐藏起来&#xff0c;以保护个人隐私。幸运的是&#xff0c;微信提供了一些内置功能以及额外的工具&#xff0c;能够帮助我们实现这一目的。下面就来详细介绍一种简单易行的方法&#xf…

Mac硬盘检测工具

Mac硬盘检测软件是一款用于检测和诊断Mac硬盘健康状态的工具&#xff0c;帮助用户及时发现潜在的硬盘问题&#xff0c;避免数据丢失和系统故障。通过全面的检测和报告功能&#xff0c;用户可以更好地了解自己的硬盘状况&#xff0c;确保数据的安全和可靠。给大家介绍几款好用的…