java 获取时间的方法

news/2024/11/25 23:18:17/

 

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);
    ```


http://www.ppmy.cn/news/49105.html

相关文章

汽车OTA龙头「艾拉比」获B2轮融资,上汽旗下尚颀资本领投

汽车“新四化”软件技术产品及服务供应商「艾拉比」宣布获得B2轮融资,本次投资方为上汽集团旗下尚颀资本及其合作方山高投控,投资额6000万。本次融资资金将用于产品研发、团队扩充及海外市场拓展。 作为艾拉比最早的主机厂合作伙伴之一,上汽…

零项目零科研,本科排名倒数,一战上岸上海交大电子与通信工程

笔者来自通信考研小马哥23上交819全程班学员 本科就读于哈工大(威海),本科成绩很差,专业排名62/99,没有科研,没有实验室,没有项目,连最基本大家都会参加的科技立项我四年也没有参与…

移动端屏幕适配

文章目录 移动端屏幕适配移动端屏幕适配和响应式布局区别基本知识简单屏幕适配1px边框问题通用屏幕适配 移动端屏幕适配 移动端屏幕适配和响应式布局区别 移动端适配响应式布局终端移动端PC端和移动端常用单位宽高:rem 或 %字体:px宽:%高、…

中国计算机学会推荐中文科技期刊目录(2022年)

相关链接: 中国计算机学会推荐中文科技期刊目录(2019年)CCF发布计算领域高质量科技期刊分级目录-中国计算机学会 CCF 推荐中文科技期刊目录,本目录未来将在两到三年更新一次 2022年2月19日,“计算领域高质量科技期刊…

【Linux】磁盘与文件系统

目录 一、磁盘的物理结构 二、磁盘逻辑抽象 三、文件系统 1、Super Block 2、Group Descriptor Table 3、inode Table 4、Data Blocks 5、inode Bitmap 6、Block Bitmap 四、Linux下文件系统 1、inode与文件名 2、文件的增删查改 2.1、查看文件内容 2.2、删除文件…

在poetry虚拟环境下打包exe

本博客介绍了在poetry虚拟环境下打包exe的流程,包含两个部分 打包的基本流程打包过程中遇到的问题 打包的基本流程 copy打包工具到本地,(share:\公用共享\芯片部\乔羽\img_generate\系统部提供的打包exe工具) 用poetry搭建虚拟环境 在打包…

延迟渲染 Deferred Rendering

前向渲染 先计算光照再裁剪。 前向渲染是现在最基础,也是最多引擎使用的标准。前向渲染的流程是给定一个几何体,引擎对其进行从顶点到像素着色器的一系列计算,然后输出到最终的图像缓冲区。场景中有多个几何体时,引擎就是对其挨个…

learn C++ NO.1——命名空间域、输入输出、函数重载

前言 什么是C C(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼斯特劳斯特卢普在AT&T贝尔工作室研发。C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的…