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

java 获取时间的方法

 

Java的时间是通过字节码指令来控制的,所以 java程序的运行时间是通过字节码指令来控制的。但是由于 Java程序在运行时, JVM会产生一些状态,所以在执行 JVM指令时, JVM也会产生一些状态。 我们在执行 java程序时,主要是通过字节码指令来控制 Java程序运行时的状态,而 Java程序中的每个字节码指令都是有意义的。其中有一条指令就是获取当前时间。下面我们通过实例来学习一下如何在 Java中通过解析字节码指令获取当前时间:

  • 1.获取当前时间

    第一步:我们需要将 Java程序的运行时状态(JVM)转换成一个字节码指令,也就是需要将当前时间转化成一个二进制的字符串,因为字节码指令是有意义的,所以我们可以将这个字符串作为 Java程序运行时的一个状态。 第二步:我们需要将这个字符串转换成一个可以进行解析的二进制,也就是我们需要将这个字符串转换成一个可以在内存中存储的二进制数字,即 byte [],我们可以将这个字符串转换成一个字节,也就是 byte []。 第三步:我们需要将这个字符串作为 Java程序运行时的一个状态,也就是 java程序运行时的时间。 第五步:我们需要将当前时间和当前日期进行比较。 在上面的例子中,我们需要获取当前时间和当前日期。可以看到,在获取当前时间时,需要先将 byte []转换成一个字节,然后再将这个字节存储为二进制数字,这样才能在内存中进行存储。 下面我们再来看一下 java程序中可以通过获取当前时间来实现哪些功能。 JVM是用来对 Java程序进行管理和控制的。JVM可以执行各种类型的 Java程序。其中最重要的功能就是对对象进行管理和控制。java是一种面向对象的语言,所以我们在使用 java编写程序时也要遵循面向对象的原则。下面我们再来看一下如何获取当前时间: 通过上面两个例子可以看出 Java中有两种方法可以获取当前时间:

  • 2.解析字节码指令

    上面的代码是通过调用 yaml类中的 yaml. start方法来获取当前时间的,其内部调用了两个类来获取当前时间,下面我们来看看这两个类是如何实现的。 在解析字节码指令之前,我们需要先知道在 Java程序中有哪些字节码指令是有意义的。在 java. util. interface中定义了26种字节码指令,我们知道在 Java中只有26种字节码指令,而除了26种之外还有一些字节码指令是没有意义的。下面我们就来了解一下这些没有意义的字节码指令都有哪些。 首先我们来了解一下在 java. util. interface中定义的字节码指令有哪些。 上面 Java代码中的 yaml类定义了26种字节码指令,在 Java中只有26种字节码指令,所以 Java中的26种字节码指令都是没有意义的,并且26种字节码指令都是无符号整数(Unsafe Number)。 无符号整数(Unsafe Number),又叫浮点数,是一种与实数(实数)一一对应的整数,所以也可以叫做实数整数(Positive Number)。无符号整数有如下特点: (1)实数具有加法和乘法运算符,而浮点数只有加法和乘法运算符。 (2)无符号整数可以用任何自然数表示,而浮点数只能表示有限小数。 (3)无符号整数在数值上是连续的,而浮点数是离散的。 如果一个程序需要在有限时间内得到某个答案,那么就需要使用浮点数。而在 Java中无符号整数也就是指浮点数,比如8位2进制的1~9这10个数字是不能作为浮点数来表示的。 Java中的字节码指令共有26种,但是并不是所有字节码指令都有意义。上面这条字节码指令返回值为0,表示当前时间为0; 上面26条没有意义的字节码指令返回值均为0。

  • 3.运行结果

    如图所示,在运行 java程序时,可以看到执行的字节码指令中有一条是获取当前时间的指令。这条字节码指令中有一个参数,该参数是 java程序运行时所处的状态,这个参数的作用就是控制 JVM在执行这条字节码指令时,要将当前时间记录下来。 如图所示,当执行 java程序时,由于 JVM运行的状态不同,所以会有不同的结果。当我们将当前时间记录下来时, JVM会执行下面这条字节码指令: 在执行该字节码指令时, JVM会将当前时间记录下来,而 JVM的运行状态也会被改变。当我们将当前时间记录下来后,可以在 java程序中对该字节码指令进行一些特殊处理。如将其解析为数字后再保存下来等。当然这只是一个例子,实际情况比这复杂的多。这里只是为了说明 java程序中获取时间是有多种方式的。

  • 常用的java获取时间的代码 :

  • 1. 获取当前时间戳(毫秒数):
    ```java
    long timestamp = System.currentTimeMillis();
    ```
    2. 获取当前日期时间:
    ```java
    Date date = new Date();
    ```
    3. 格式化日期时间为字符串:
    ```java
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String formattedDate = sdf.format(new Date());
    ```
    4. 解析字符串为日期时间:
    ```java
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = sdf.parse("2021-01-01 00:00:00");
    ```
    5. 获取当前年份、月份、日期、小时、分钟、秒钟:
    ```java
    Calendar calendar = Calendar.getInstance();
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要加1
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    int hour = calendar.get(Calendar.HOUR_OF_DAY);
    int minute = calendar.get(Calendar.MINUTE);
    int second = calendar.get(Calendar.SECOND);
    ```

相关文章:

java 获取时间的方法

Java的时间是通过字节码指令来控制的,所以 java程序的运行时间是通过字节码指令来控制的。但是由于 Java程序在运行时, JVM会产生一些状态,所以在执行 JVM指令时, JVM也会产生一些状态。 我们在执行 java程序时,主要是…...

Block原理(二)- 用白话说说底层源码,不扯代码

之前有一篇关于block的源码探究分析 Block原理(一),时至今日,总觉的那篇文章说得不够流畅,今天打算从顶层设计的角度试着拆解下block的设计思想,拗脑的源码部分就不必再次触碰了,尽量保障这篇文…...

springboot整合knife4j接口文档成公共模块使用

theme: smartblue 之前项目中一直用的是swagger-ui进行接口文档的调用和使用,最近前端一直反馈页面不美观,调用凌乱,等一系列问题。基于这个问题我决定将其进行更改调整,上网搜索了一下发现knife4j是目前接口文档不错的一款插件。…...

软件测试需要学什么

软件测试近些年也是比较热门的行业,薪资高、入门门槛低,让很多开发人员想纷纷加入软件开发这个行业,想要成为这一岗位的一员,想要进入软件测试行业,他们需要学习什么呢? 软件测试需要学习的还挺多的&#…...

【蓝桥杯省赛真题17】python删除字符串 青少年组蓝桥杯python编程省赛真题解析

目录 python删除字符串 一、题目要求 1、编程实现 2、输入输出 二、解题思路...

C# LINQ 查询语句和方法的区别及使用

C# LINQ(Language-Integrated Query)是一种强类型、编译时的查询技术,它可以通过统一的语法对多种数据源进行查询和操作,包括对象、集合、数据库等。LINQ 提供了两种查询方式:查询语句和扩展方法。 查询语句&#xff…...

【nacos配置中心】源码部分解析

启动初始化 SpringApplication.prepareContext applyInitializers 回调ApplicationContextInitializer的initialize方法 getInitializers()从applicationContext获取List<ApplicationContextInitializer<?>> initializers 这个集合是通过SpringApplication的…...

Kotlin 1.6.0 的新特性

1、稳定版对于枚举、密封类与布尔值主语穷尽 when 语句 一个详尽的when语句包含了所有主题可能的类型或值的分支&#xff0c;或者对于一些类型包含一个else分支。它覆盖了所有可能的情况&#xff0c;使代码更加安全。 即将禁止非详尽的when语句&#xff0c;以使行为与when表达…...

nextjs13临时笔记

动态路由 文件夹以中括号命名[id] -pages: --list: ---[id]: ----index.jsx(访问路径/list/1 即这种形式/list/:id) ---index.jsx(访问路径/list)[...params]gpt接口分析 初始化项目 npm install next react react-dom # or yarn add next react react-dom # or pnpm add n…...

云计算与区块链之间有什么区别?

区块链是一种去中心化的分布式数字账本&#xff0c;可实现安全透明的交易和数据存储。 它使用节点网络来验证和验证交易。 云计算通过互联网提供计算资源&#xff0c;例如服务器、存储和软件。区块链是一种分散且不可变的虚拟数据分类账&#xff0c;用于维护交易信息和监控网络…...

sed命令常用例子

替换文件中的文本 将文件file.txt中的所有"old_text"替换成"new_text"&#xff1a; sed -i ‘s/old_text/new_text/g’ file.txt 删除文件中的某行 删除文件file.txt中的第5行&#xff1a; sed -i ‘5d’ file.txt 在文件中添加一行 在文件file.txt…...

MB510 3BSE002540R1在机器视觉工业领域最基本的应用

​ MB510 3BSE002540R1在机器视觉工业领域最基本的应用 大家都说人类感知外界信息的80%是通过眼睛获得的&#xff0c;图像包含的信息量是最巨大的。那么机器视觉技术的出现&#xff0c;就是为机器设备安上了感知外界的眼睛&#xff0c;使机器具有像人一样的视觉功能&#xff0c…...

nightingale-0-介绍单机二进制部署

(一) 夜莺介绍 Nightingale | 夜莺监控&#xff0c;一款先进的开源云原生监控分析系统&#xff0c;采用 All-In-One 的设计&#xff0c;集数据采集、可视化、监控告警、数据分析于一体&#xff0c;与云原生生态紧密集成&#xff0c;提供开箱即用的企业级监控分析和告警能力。于…...

一个从培训学校走出来的测试工程师自述....

简单介绍一下我自己&#xff0c;1997年的&#xff0c;毕业一年了&#xff0c;本科生&#xff0c;专业是机械制造及其自动化。 在校度过了四年&#xff0c;毕业&#xff0c;找工作&#xff0c;填三方协议&#xff0c;体检&#xff0c;入职。我觉得我可能就这么度过我平平无奇的…...

关于pyqt的一些用法

QT原生是C&#xff0c;pyqt基于python语言。 关于插件&#xff1a; 安装一个PyUIC&#xff0c;一个Qt Designer 点击Qt Designer可以出来ui配置页面&#xff0c;和qt原生IDE基本一样 上面操作会生成.ui文件&#xff0c;选中此文件&#xff0c;点击PyUIC&#xff0c;会生成对…...

【Paper Note】ViViT: A Video Vision Transformer

ViViT: A Video Vision Transformer AbstractOverview of vision transformer 回顾ViTEmbedding video clips 视频编码方式Uniform frame sampling 均匀采样Tubelet embedding 时空管采样初始化3D卷积代码介绍视频编码输入到模型当中 Transformer Models for VideoSpatio-tempo…...

Java入坑之IO操作

目录 一、IO流的概念 二、字节流 2.1InputStream的方法 2.2Outputstream的方法 2.3资源对象的关闭&#xff1a; 2.4transferTo()方法 2.5readAllBytes() 方法 2.6BufferedReader 和 InputStreamReader 2.7BufferedWriter 和 OutputStreamWriter 三、路径&#xff1a;…...

校园小助手【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址&#xff1a; 更多系统资源库地址&#xff1a;骚戴的博客_CSDN_更多系统资源 更多系统…...

String的不可变特性

1 问题 如何理解“String是不可变的&#xff0c;但是可以变”&#xff1f; 2 方法 &#xff08;1&#xff09;String的不可变特性体现在内容和长度 首先在idea中点开查看String这个类是如何定义的 可以看到这样一行代码&#xff1a;private final char value[]; 正是因为这个数…...

使用MMDeploy(预编译包)转换MMxx(MMDeploy支持库均可)pth权重到onnx,并使用python SDK进行部署验证

MMDeploy使用python部署实践记录 准备工作空间所需环境配置使用MMDeploy得到onnx使用MMDeploy加载onnx模型对单张图片进行推理使用python SDK对onnx模型进行验证 注意 mmdeploy C SDK的使用部署和实际操作过程请看本人另外一篇博文使用MMDeploy&#xff08;预编译包&#xff09…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...