当前位置: 首页 > news >正文

日期:Date,SimpleDateFormat常见API以及包装类

 一.Date类

package com.gch.d1_date;import java.util.Date;/**目标:学会使用Date类处理时间,获取时间的信息*/
public class DateDemo1 {public static void main(String[] args) {// 1.创建一个Date类的对象:代表系统此刻日期时间对象Date d = new Date();System.out.println(d); // Wed Mar 01 10:04:09 CST 2023// 2.获取时间毫秒值long time = d.getTime();System.out.println(time); // 1677636249346
//        long time1 = System.currentTimeMillis();
//        System.out.println(time1);System.out.println("-----------------------");// 请计算当前时间往后走1小时121秒之后的时间是多少// 1.得到当前时间Date d1 = new Date();System.out.println(d1); // Wed Mar 01 10:04:09 CST 2023// 2.当前时间往后走1小时121秒long time2 = System.currentTimeMillis();time2 += (60 * 60 + 121) * 1000;// 3.把时间毫秒值转换成对应的日期对象
//        Date d2 = new Date(time2);
//        System.out.println(d2);Date d3 = new Date();// 设置日期对象的时间为当前时间毫秒值对应的时间d3.setTime(time2);System.out.println(d3); // Wed Mar 01 11:06:10 CST 2023}
}

 二.SimpleDateFormat类

 

 

 

 

 

package com.gch.d2_simpledateformat;import java.text.SimpleDateFormat;
import java.util.Date;/**目标:SimpleDateFormat简答日期格式化类的使用格式化时间解析时间*/
public class SimpleDateFormatDemo1 {public static void main(String[] args) {// 1.日期对象Date d = new Date();System.out.println(d); // Sat Feb 25 18:08:35 CST 2023// 2.格式化这个日期对象(指定最终格式化的形式)SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");// 3.开始格式化日期对象称为喜欢的字符串形式String rs = sdf.format(d);System.out.println(rs); // 2023年02月25日 18:08:35 星期六 下午System.out.println("-----------------------");// 4.格式化时间毫秒值// 需求:请问121秒后的时间是多少long time = System.currentTimeMillis() + 121 * 1000;String rs2 = sdf.format(time);System.out.println(rs2); // 2023年02月28日 14:34:35 星期二 下午}
}

 

 

package com.gch.d2_simpledateformat;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo2 {public static void main(String[] args) throws ParseException {// 目标:学会使用SimpleDateFormat解析字符串时间成为日期对象System.out.println("------解析字符串时间-------");// 案例:请计算出2021年08月06日11点11分11秒,往后走2天14小时49分06秒后的时间是多少// 1.把字符串时间拿到程序中来String dataStr = "2021年08月06日 11:11:11";// 2.把字符串时间解析成日期对象(本节的重点):形式必须与被解析时间的格式完全一样,否则运行时解析报错!SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:s");Date d = sdf.parse(dataStr);// 3.往后走2天 14小时 49分 06秒long time = d.getTime() + (2L * 24 * 60 * 60 + 14 * 60 * 60 + 49 * 60 + 6) * 1000;// 4.格式化这个时间毫秒值就是结果System.out.println(sdf.format(time)); // 2021年08月09日 02:00:17}
}

 

 

package com.gch.d2_simpledateformat;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatTest3 {public static void main(String[] args) throws ParseException {// 1.开始和结束时间String startTime = "2021-11-11 00:00:00";String endTime = "2021-11-11 00:10:00";// 2.小贾  小皮String xiaoJia = "2021-11-11 00:03:47";String xiaoPi = "2021-11-11 00:10:11";// 3.解析他们的字符串时间为日期对象SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d1 = sdf.parse(startTime);Date d2 = sdf.parse(endTime);Date d3 = sdf.parse(xiaoJia);Date d4 = sdf.parse(xiaoPi);if(d3.after(d1) && d3.before(d2)){System.out.println("小贾秒杀成功,可以发货了!");}else{System.out.println("小贾秒杀失败!");}if(d4.after(d1) && d4.before(d2)){System.out.println("小皮秒杀成功,可以发货了!");}else{System.out.println("小皮秒杀失败!");}}
}

 三.包装类

  • 包装类就是8种基本数据类型对应的对象,就是把基本数据类型变成了一个对象。
  • 包装类是引用数据类型,包装类的本质就是在堆内存中创建了一个对象,对象当中记录对应的数据值。而基本数据类型在变量中记录的是真实的数据值。
  • 获取包装类对象,不需要调方法,直接赋值即可。
  • 集合和泛型不支持基本数据类型,只支持引用数据类型。
  • 包装类(位于java.lang包中)
  • 在Java中,每一次new都是创建了一个新的对象

  • Java是强类型语言:每种数据在Java中都有各自的数据类型,在计算的时候,如果不是同一种数据类型,是无法直接计算的。 

 

 

package com.gch.d5_integer;/**目标明白包装类的概念,并使用*/
public class Test {public static void main(String[] args) {int a = 10;Integer a1 = 11; // 引用类型,认为a1是对象变量System.out.println(a);System.out.println(a1);Integer a2 = a; // 自动装箱Integer it = 100;int it1 = it; // 自动拆箱System.out.println(it1);//        int age = null; 报错了// Integer容错率更高Integer age1 = null;Integer age2 = 0;System.out.println("----------------------");// 1.包装类可以把基本类型的数据转换成字符串形式(没啥用)Integer i3 = 23;String rs = i3.toString();System.out.println(rs + 1); // 231// 包装类也可以直接+字符串得到字符串类型String rs2 = i3 + "";System.out.println(rs2 + 1); // 231System.out.println("----------------");String number = "23";// 转换成整数
//        int age = Integer.parseInt(number);int age = Integer.valueOf(number);System.out.println(age + 1); // 24String number1 = "99.9";// 转换成小数
//        double score = Double.parseDouble(number);double score = Double.valueOf(number1);System.out.println(score + 0.1); // 100}
}
  1.  Integer.valueOf(int i),如果i的值在-128到127之间,它会提前创建好Integer的对象,并且放到一个数组当中,用Integer.valueOf方法去获取对象的时候,它会判断你这个数据是不是在-128到127之间,如果说在,它不会创建新的对象,而是从数组当中获取已经创建好的对象给你返回,如果说不在-128到127之间,它才会new新的对象

   底层原理:

  1.    因为在实际开发中,-128~127之间的数据,用的比较多
  2.    如果每次使用都是new对象,那么太浪费内存了,所以提前把这个范围之内的每一个数       据都创建好对象
  3.    如果要用到了不会创建新的,而是返回已经创建好的对象。
  4.    == 号是比较两个对象的地址值是否相同
package com.gch.d5_integer;public class Test2 {public static void main(String[] args) {// 这两种方式获取对象的区别(掌握)// i的值都是127,不会创建新对象,而是获取已有对象Integer i6 = Integer.valueOf(127);Integer i7 = Integer.valueOf(127);System.out.println(i6 == i7); // trueInteger i8 = Integer.valueOf(128);Integer i9 = Integer.valueOf(128);System.out.println(i8 == i9); // false// 因为看到了new关键字,在Java中,每一次new都是创建了一个新的对象// 所以下面的两个对象都是new出来,地址值不一样Integer i10 = new Integer(127);Integer i11 = new Integer(127);System.out.println(i10 == i11); // falseInteger i12 = new Integer(128);Integer i13 = new Integer(128);System.out.println(i12 == i13); // false}
}
  1.  在JDK5的时候提出了一个机制:自动装箱和自动拆箱
  2.  自动装箱:把基本数据类型会自动地变成其对应的包装类
  3.  自动拆箱:把包装类自动地变成其对应的基本数据类型
  4. 在JDK5以后,int和Integer可以看作是同一个东西,因为在内部可以自动转化。

package com.gch.d5_integer;public class Test3 {public static void main(String[] args) {
//        Integer i1 = 127;
//        Integer i2 = 127;
//        System.out.println(i1 == i2); // true// 在底层,此时还会去自动调用静态方法valueOf得到一个Integer对象,只不过这个动作不需要我们自己去操作了// 自动装箱的操作Integer i1= 10;Integer i2 = new Integer(10);// 自动拆箱的动作int i = i2;}
}
package com.gch.d5_integer;public class Test4 {public static void main(String[] args) {Integer i1 = 10;Integer i2 = 10;// 引用数据类型不能直接计算,要先拆箱相加后再装箱赋值给i3Integer i3 = i1 + i2;}
}

 

 

  1.  public static String toBinaryString(int i)  得到二进制
  2.  public static String toOctalString(int i)    得到八进制
  3.  public static String toHexString(int i)      得到十六进制
  4.  public static int parseInt(String s)  将字符串类型的整数转成int类型的整数
  5.  为什么返回值类型为String,因为八进制有可能是01101101
  6.  int类型最多可以取到21亿,也就是最多只能有10位
package com.gch.d5_integer;public class Test5 {public static void main(String[] args) {// 1.把整数转成二进制,十六进制String str1 = Integer.toBinaryString(100);System.out.println(str1); // 1100100// 2.把整数转成八进制String str2 = Integer.toOctalString(100);System.out.println(str2); // 144// 3.把整数转成十六进制String str3 = Integer.toHexString(100);System.out.println(str3); // 64// 4.将字符串类型的整数转成int类型的整数// 因为Java是强类型语言:每种数据在Java中都有各自的数据类型// 在计算的时候,如果不是同一种数据类型,是无法直接计算的int i = Integer.parseInt("123");System.out.println(i); // 123System.out.println(i + 1); // 124boolean b = Boolean.valueOf("true");System.out.println(b); // true}
}
package com.gch.d5_integer;import java.util.Scanner;public class Test6 {public static void main(String[] args) {// 键盘录入Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");/* String str = sc.next();System.out.println(str);*/// 弊端:// 当我们在使用next,nextInt,nextDouble在接收数据的时候,遇到空格,回车,制表符的时候就停止了// 键盘录入的是123 123 那么此时只能接收空格前面的数据// 我想要的是接收一整行数据// 约定:// 以后我们如果想要键盘录入,不管什么类型,统一使用nextLine// 特点:遇到回车才停止String line = sc.nextLine();System.out.println(line);}
}

相关文章:

日期:Date,SimpleDateFormat常见API以及包装类

一.Date类 package com.gch.d1_date;import java.util.Date;/**目标:学会使用Date类处理时间,获取时间的信息*/ public class DateDemo1 {public static void main(String[] args) {// 1.创建一个Date类的对象:代表系统此刻日期时间对象Date d new Date();System.out.println(…...

嵌入式之ubuntu终端操作与shell常用命令详解

目录 文件和目录列表 基本列表功能 显示列表长度 过滤输出列表 浏览文件系统 Linux 文件系统 遍历目录 处理文件 创建文件 复制文件 制表键自动补全 重命名文件 删除文件 处理目录 创建目录 删除目录 ​编辑其他常用命令与操作 Uname命令 clear命令 返回上一级命令 显…...

【Shell学习笔记】6.Shell 流程控制

前言 本章介绍Shell的流程控制。 Shell 流程控制 和 Java、PHP 等语言不一样&#xff0c;sh 的流程控制不可为空&#xff0c;如(以下为 PHP 流程控制写法)&#xff1a; 实例 <?php if (isset($_GET["q"])) {search(q); } else {// 不做任何事情 }在 sh/bash…...

27k入职阿里测开岗那天,我哭了,这5个月付出的一切总算没有白费~

先说一下自己的个人情况&#xff0c;计算机专业&#xff0c;16年普通二本学校毕业&#xff0c;经历过一些失败的工作经历后&#xff0c;经推荐就进入了华为的测试岗&#xff0c;进去才知道是接了个外包项目&#xff0c;不太稳定的样子&#xff0c;可是刚毕业谁知道什么外包不外…...

服务端开发之Java备战秋招面试篇5

努力了那么多年,回头一望,几乎全是漫长的挫折和煎熬。对于大多数人的一生来说,顺风顺水只是偶尔,挫折、不堪、焦虑和迷茫才是主旋律。我们登上并非我们所选择的舞台,演出并非我们所选择的剧本。继续加油吧&#xff01; 目录 1.ArrayList与LinkedList区别&#xff0c; 应用场景…...

有趣的 Kotlin 0x11: joinToString,你真的了解嘛?

前言 之前使用 joinToString 函数也就是用逗号连接集合元素形成字符串&#xff0c;也没有细看它的参数&#xff0c;但是今天和 ChatGPT 聊天时&#xff0c;发现它给我输出了诸多内容。 joinToString joinToString()是Kotlin中一个非常有用的函数&#xff0c;它可以将集合的元…...

代码随想录算法训练营day46 | 动态规划之背包问题 139.单词拆分

day46139.单词拆分1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp[i]139.单词拆分 题目链接 解题思路&#xff1a;单词就是物品&#xff0c;字符串s就是背包&#xff0c;单词能否组成字符串s&#xff0c;就是问物品能不能把背包装满。…...

DPDK中的无锁共享数据结构

目录背景解决方法共享内存无锁操作新/老共享数据结构rte_ringrefcnt延迟释放方法1&#xff1a;读的线程来释放方法2&#xff1a;释放线程等到读线程轮询一轮参考背景 dpvs多线程&#xff0c;如何做到节约内存、高性能之间的均衡。 解决方法 共享内存 多线程共享内存&#x…...

【使用两个栈实现队列】

文章目录一、栈和队列的基本特点二、基本接口函数的实现1.栈的接口2.创建队列骨架3.入队操作4.取出队列元素5.返回队首元素6.判断队列是否为空7.销毁队列总结一、栈和队列的基本特点 栈的特点是后进先出&#xff0c;而队列的特点是先进先出。 使用两个栈实现队列&#xff0c;必…...

web,h5海康视频接入监控视频流记录一

项目需求&#xff0c;web端实现海康监控视频对接接入&#xff0c;需实现实时预览&#xff0c;云台功能&#xff0c;回放功能。 web端要播放视频&#xff0c;有三种方式&#xff0c;一种是装浏览器装插件&#xff0c;一种是装客户端exe&#xff0c;还有就是无插件了。浏览器装插…...

做毕业设计,前端部分你需要掌握的6个核心技能

其实前端新手如果想要自己实现一套毕业设计项目并非简单的事&#xff0c;因为之前很多人一直还停留在知识点的阶段&#xff0c;而且管理系统和C端网站都需要开发&#xff0c;但现在需要点连成线了。所以在启动项目开发之前呢&#xff0c;针对前端部分&#xff0c;我列举一些非常…...

Read book Netty in action(Chapter VIII)--EventLoop and thread model

前言 简单地说&#xff0c;线程模型指定了操作系统、编程语言、框架或者应用程序的上下文中的线程管理的关键方面。显而易见地&#xff0c;如何以及何时创建线程将对应用程序代码的执行产生显著的影响&#xff0c;因此开发人员需要理解与不同模型相关的权衡。无论是他们自己选…...

番外11:使用ADS对射频功率放大器进行非线性测试3(使用带宽5MHz的WCDMA信号进行ACLR测试)

番外11&#xff1a;使用ADS对射频功率放大器进行非线性测试3&#xff08;使用带宽5MHz的WCDMA信号进行ACLR测试&#xff09; 其他测试&#xff1a; 番外9&#xff1a;使用ADS对射频功率放大器进行非线性测试1&#xff08;以IMD3测试为例&#xff09; 番外10&#xff1a;使用AD…...

Linux libpqxx 库安装及使用

记录一下linux安装 libpqxx遇到的一些问题 1.准备安装包&#xff1a; 1.准备安装包&#xff0c;以libpqxx-4.0.1.tar.gz为例子 链接如下&#xff1a;https://launchpad.net/libpqxx/milestone/4.0.1 2.上传并安装 上传到安装目录并安装&#xff0c;我是放到/use/local下面 c…...

如何使用COM-Hunter检测持久化COM劫持漏洞

关于COM-Hunter COM- Hunter是一款针对持久化COM劫持漏洞的安全检测工具&#xff0c;该工具基于C#语言开发&#xff0c;可以帮助广大研究人员通过持久化COM劫持技术来检测目标应用程序的安全性。 关于COM劫持 微软在Windows 3.11中引入了(Component Object Model, COM)&…...

Cartesi 举办的2023 黑客马拉松

Cartesi 是具有 Linux 运行时的特定于应用程序的Rollups执行层。Cartesi 的特定应用程序 Optimistic Rollup 框架使区块链堆栈足够强大&#xff0c;开发人员可以构建计算密集型和以前不可能的去中心化实例。Cartesi 的 RISC-V 虚拟机支持 Linux 运行时环境&#xff0c;允许像你…...

架构篇--代码质量手册

目前团队缺少SA&#xff08;研发经理&#xff09;的角色&#xff0c;大家代码写的有点随意&#xff0c;老板让我写一份开发手册。嗯&#xff01;&#xff01;&#xff01;当时我稍微纠结了一下&#xff0c;感觉这个似乎不是我的工作范畴&#xff0c;但是本着"我就是块砖&a…...

那些年用过的IDEA插件

今天和大家分享一下经常使用的IDEA的插件&#xff0c;希望有所帮助。一、IDEA插件CodeGlance2显示代码缩略图插件&#xff0c;方便查看代码。Lombok用于编译期间自动生成getter、setter、构造、toString等方法&#xff0c;简化代码。Mybatis Builder或MybatisXMapper接口和xml双…...

python+requests实现接口自动化测试

这两天一直在找直接用python做接口自动化的方法&#xff0c;在网上也搜了一些博客参考&#xff0c;今天自己动手试了一下。 一、整体结构 上图是项目的目录结构&#xff0c;下面主要介绍下每个目录的作用。 Common:公共方法:主要放置公共的操作的类&#xff0c;比如数据库sqlhe…...

rtthread 线程

创建动态线程最简单代码 #include <rtthread.h>//包含头文件static rt_thread_t thread1 RT_NULL; //创建线程控制块指针&#xff0c;指向空static void thread1_entry(void *parameter)//线程入口&#xff08;干什么&#xff09; {rt_kprintf("do something"…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...