学习Java API(三):基础知识点一文通✅

news2025/1/10 11:57:28

推荐阅读

智能化校园:深入探讨云端管理系统设计与实现(一)
智能化校园:深入探讨云端管理系统设计与实现(二)


文章目录

  • 推荐阅读
  • Date 类
  • SimpleDateFormat
  • Calendar


Date 类

java.util 包提供了 Date 类来封装当前的日期和时间。

import.util.Date

java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。

固定时间点叫纪元,是UTC时间 1970年1月1日 00:00:00。

Date的每一个实例表示一个确切的时间点。记录从1970年1月1日 00:00:00到表示时间点之间经历的毫秒值。正数是70年以后日期,负数是70年以前日期。

//获取现在时间
Date now=new Date();
System.out.println(now);
//获取long值
long time=now.getTime();
System.out.println(time);

//明天此时的值
time+=1000*60*60*24;
//设置了一个long值,使它表示我们设置的值
now.setTime(time);
System.out.println(now);

在这里插入图片描述

SimpleDateFormat

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

//根据给定的日期格式将String与Date相互转换
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//format() 方法可以将给定的date对象所表示的时间按照给定的日期格式转化成字符串
String str= sdf.format(now);
System.out.println(str);

//Date parse()方法将给定字符串按照给定的日期格式解析为一个date对象
String str1="2020-11-11 11:11:11";
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=sdf1.parse(str1);
System.out.println(date);

日期模式匹配符
在这里插入图片描述

10000天纪念日计算小方法

10000天纪念日
/**
 * 输入生日 yyyy-MM-dd
 * 到现在为止一共多少天
 */
System.out.println("输入生日,年月日");
Scanner scanner=new Scanner(System.in);
String str2=scanner.nextLine();
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
Date birth=sdf2.parse(str2);
//已经生活了多少天
Date now2=new Date();
System.out.println(now2);
SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf3.format(now2));
long time1=now2.getTime()-birth.getTime();
time1=time1/1000/60/60/24;
System.out.println(time1);
//如果生活了10000天的话,那一10000天是哪一天,若还没有达到10000天,那么哪一天到达10000天
if(time1>=10000){
    long time2=time1-10000;
    time2=time2*1000*60*60*24;
    now2.setTime(now2.getTime()-time2);
    System.out.println(sdf2.format(now2));
}else{
    long time3=10000-time1;
    time3=time3*1000*60*60*24;
    now2.setTime(now2.getTime()+time3);
    System.out.println(sdf2.format(now2));
}

Calendar

Calendar,日历类
该类是一个抽象类,封装了对时间的相关操作
常用的实现是格力高里历(阳历)GregorianCalendar类
Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。

//创建一个代表系统当前日期的Calendar对象
Calendar c = Calendar.getInstance();//默认是当前日期
//创建一个指定日期的Calendar对象
//使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。
//创建一个代表2022年2月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2022, 2 - 1, 12);
//使用静态方法创建实例
//该方法根据系统所在地区创建一个相应实现类
Calendar c=Calendar.getInstance();
System.out.println(c);//无法直观表示时间
// Calendar 提供了方法getTime()返回一个date对象,该对象表示时间就是当前Calendar表示的时间
Date date=c.getTime();
System.out.println(date);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(date));
//表示明天这一时刻
date.setTime(date.getTime()+1000*60*60*24);
System.out.println(date);

Calender的月份是从0开始的,但日期和年份是从1开始的

//Calendar 提供针对不同时间分量单独设置值的方法
void set(int filed,int value);
//第一个参数为时间值:时间分量 如 年月日,第二个 对应的值
c.set(Calendar.YEAR,2021);

获取时间

获取时间
int  get(int filed)

Calendar c2=Calendar.getInstance();
int year=c2.get(Calendar.YEAR);
int month=c2.get(Calendar.MONTH)+1;
int day=c2.get(Calendar.DATE);
int hour=c2.get(Calendar.HOUR);
int min=c2.get(Calendar.MINUTE);
int s=c2.get(Calendar.SECOND);

查看星期几
int dow=c2.get(Calendar.DAY_OF_WEEK);
System.out.println("周"+(dow==1?"7":dow-1));
String[] data={"日","一","二","三","四","五","六"};
System.out.println("周"+data[dow-1]);

查看今年过了多少天
int day1=c2.get(Calendar.DAY_OF_YEAR);
System.out.println(year+"已经过"+day1+"天");

getActuakMaximum方法
返回指定日历字段可能拥有的最大值

int day2=c2.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(day2);
//2月天数,闰年
c2.set(Calendar.MONTH,1);
day2=c2.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(day2);

Calendar中计算时间的方法

c2.add(Calendar.YEAR,3);
System.out.println(c2.getTime());
c2.add(Calendar.HOUR,-5);
System.out.println(c2.getTime());

在这里插入图片描述

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

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

相关文章

UI自动化测试框架

文章目录 UI自动化基础什么是UI自动化测试框架UI自动化测试框架的模式数据驱动测试框架关键字驱动测试框架行为驱动测试框架 UI自动化测试框架的作用UI自动化测试框架的核心思想UI自动化测试框架的步骤UI自动化测试框架的构成UtilsLog.javaReadProperties.Java coreBaseTest.ja…

屏幕录制软件有哪些?强烈推荐5款免费好用录屏软件

录制全屏视频是制作视频教程、评论、游戏等内容的绝佳方式。它可以包括您计算机屏幕上的任何活动以及您的音频和网络摄像头。特别是,屏幕录像机对喜欢创建软件评论的视频博主很有帮助。如果您是其中之一,那么好消息是您可以在网络上找到很多屏幕录制应用…

纯c++简易的迷宫小游戏

一个用c写的黑框框迷宫 适合新手入门学习 也适合大学生小作业 下面附上代码 总体思路 初始化游戏界面:设置迷宫的大小(WIDTH和HEIGH),生成迷宫地图(map),包括墙壁、空地、起点和终点。显示…

怿星科技测试实验室获CNAS实验室认可,汽车以太网检测能力达国际标准

2023年12月27日,上海怿星电子科技有限公司测试实验室(下称:EPT LABS)通过CNAS实验室认可批准,并于2024年1月5日正式取得CNAS实验室认可证书(注册号CNAS L19826),标志着怿星科技的实验…

SpringBoot3自动配置原理

​​​​​​自动配置 遵循约定大约配置的原则,在boot程序启动后,起步依赖中的一些bean对象会自动注入到ioc容器 看一下我们前面写的代码有没有达到自动配置的效果呢? 没有自动,我们写了配置类,写了Import注解&#…

一台电脑如何通过另一台联网电脑访问网络

电脑A没有连接网络,电脑B已经连接wifi。 电脑A如何通过访问电脑B从而连接网络? 1. 将这2台电脑用网线直连 2. 电脑B打开【网络和Internet设置】 3. 右键点击WLAN,选择属性,进入共享tab页面,勾选【允许其他网络用户通过…

超融合之道:亚信安慧AntDB 8.0版本引领数据库创新

在当今多变的数据应用场景中,AntDB作为行业领先的超融合流式实时数仓,秉承着“融合实时”的研发理念,全面应对企业日益复杂的数据处理需求。通过SQL接口访问多种执行引擎,AntDB在实现交易、分析等多重能力的“超融合”方面取得了显…

nacos配置yml空格报错提示

错误格式 正确格式 spring:redis: # redis配置host: 192.168.30.113 # IPport: 6379 # 端口password: # 密码connect-timeout: 10s # 连接超时时间lettuce: # lettuce redis客户端配置pool: # 连接池配置max-active: 8 # 连接池最大连接数(使用负值表示没有限…

android studio设置gradle和gradle JDK版本

文章目录 1.gradle JDK版本2.gradle版本 1.gradle JDK版本 file -> project structure -> SDK Location -> Gradle Settings -> Gradle JDK -> Download JDK 2.gradle版本 file -> project structure -> Project

打造创新的金融数据平台,加速数字化和智能化转型丨PingCAP 官网金融行业专区上线

自诞生以来,TiDB 的原生分布式架构在强一致性、高可用性和可扩展性等方面与金融级业务需求高度契合,早期版本即为包括北京银行在内的金融用户提供服务。 TiDB 的核心能力始终源自与中国金融用户的共同创造。作为金融级分布式数据库,TiDB 在国…

东南亚潜力巨大,下一个变现增长点!Flat Ads助力休闲游戏出海

近年来,得益于庞大的消费市场和人口红利,东南亚经济飞速发展,尤其在移动互联网和数字经济领域表现亮眼。巨大的发展空间吸引了众多出海者布局,而东南亚有利的人口结构、不断增长的财富以及日益城市化的人口为数字经济的未来增长奠定了基础。那么,2024年游戏出海东南亚,是否仍有…

Zabbix补充扩展

目录 1.自定义监控内容 客户端配置 2.zabbix自动发现与自动注册 自动发现 在服务端和客户端上配置 hosts 解析 在Web页面配置自动发现 自动注册 3.部署zabbix代理服务器 下载zabbix-proxy以及数据库 启动zabbix-proxy及添加hosts解析 在Web页面配置agent代理 配置a…

S1D13L02 VGA简单的液晶控制器

S1D13L02是一款简单、低成本、低功耗、多用途的液晶控制器,具有一个1024 KB的嵌入式SRAM显示缓冲区。 S1D13L02提供了一个灵活的,但易于开发的显示系统,适合于满足嵌入式市场的需求,如工厂自动化、医疗设备和 办公自动化应用。 S1…

过滤器、拦截器、AOP、ControllerAdvcie执行顺序对比

过滤器Filter 简介 来自J2EE中的Servlet技术实现原理:基于servlet的函数回调实现只可以获取到请求中的request和response,无法获取到响应方法的信息可以拦截所有请求支持使用xml配置和注解配置应用场景:权限认证、敏感词检测、访问日志记录…

JVM对象创建与内存分配机制剖析

欢迎大家关注我的微信公众号: 传送门:JVM内存模型深度剖析与优化 目录 对象的创建 对象大小与指针压缩 对象内存分配 对象内存回收 对象的创建 对象创建的主要流程: 1.类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的…

GC6106 双通道5V低电压步进电机驱动芯片——低噪声、低振动

GC6106是双通道5V低电压步进电机驱动器,具有低噪声、低振动的特点,特别适用于相机的变焦和对焦系统,万向节和其他精密,低噪声STM控制系统。该芯片为每个通道集成了256微步驱动器。我SPl接口,用户可以方便地调整驱动器的…

设计模式入门

0. 类图 1. 设计原则 1.单一职责原则:每个类只有一个功能 2.开放封闭原则:模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方) 3.里氏代换原则:子类拥有父类的所有方法和属性,从而可以减少创建类的工作量 4.依…

【MySQL高级】——性能分析

数据库调优中,目标是 响应时间更快,吞吐量更大,利用宏观的监控工具和微观的日志分析帮助我们快速找到调优的思路和方式。 1. 数据库服务器优化步骤 整个流程划分成了 观察(Show status) 和 行动(Action&am…

业财融合:解密企业管理的黄金钥匙

本文提炼总结自专刊《上市公司如何打好合规与增长的双赢之战》。全书40页,出品方纷享销客市场部。如有需要,请阅读原版电子书:《上市公司如何打好合规与增长的双赢之战》 目 录 一、什么是业财融合? 二、财务部门面临的挑战…

超好用的写作软件,下面这5款AI写作你一定要知道

写作是一项需要耐心和技巧的工作,而在数字化时代,我们可以借助各种写作软件来提高效率和质量。在市场上有许多AI自动写作软件,它们能够帮助我们生成文章、提供创意和编辑建议。在本文中,我将向大家推荐五款功能强大且好用的写作软…