首页 > 编程语言 >Java常用工具类--日期--算术

Java常用工具类--日期--算术

时间:2024-12-28 19:55:08浏览次数:7  
标签:Java -- System Date println now 常用工具 Math out

Java常用工具类

日期

有关日期的类主要有
Date:java.util包下的类,早期处理日期的类
LocalDateTime:有关时间、日期的类

java8开始,在java.time包下实现了专门处理日期、时间的类,其他还有LocalDate、LocalTime,用来获取当前时间

Date

构造方法

Date类有多个构造方法,大多已经过时了,主要关注Date()和Date(long l)两个
在这里插入图片描述

    // 无参构造:使用当前时间戳初始化
    public Date() {
        this(System.currentTimeMillis());
    }
    // 参数传入一个时间戳,以此初始化
    public Date(long date) {
        fastTime = date;
    }

Date类是一个几乎过时的类,因为大多数方法已经过时了,获取年月日时分秒的方法全部过时
在这里插入图片描述

  • long getTime():获取时间戳(一般都是毫秒级)

时间戳:1970/1/1:00.00.00至今的毫秒数

import java.util.Date;
public class TestDate {
    public static void main(String[] args) {

        Date date = new Date();
        // Date重写了toString()方法,但不需要直接调用
        // 以下两行输出一致
        System.out.println(date);
        System.out.println(date.toString());
        // getTime():返回时间戳
        System.out.println(date.getTime());
        System.out.println(date.getTime());

        // 构造方法,传入时间戳 long类型初始化,可以是任意一个时间点
        Date date2 = new Date(1845350000000L);  // 2028年6月23日星期五,时分秒13.13.20
        System.out.println(date2);
    }

}

为什么Date类过时了?
一、名字歧义,包括日期时间,但字面只有日期的含义
二、不是最终类,多线程环境下,会造成线程不安全

LocalDateTime

需要关注的方法
static LocalDateTime now():用时钟类初始化的本地时间日期对象

    public static LocalDateTime now() {
        return now(Clock.systemDefaultZone());
    }

java推荐使用这个类创建日期对象,但不能获取时间戳

import java.time.Instant;
import java.time.LocalDateTime;
import java.util.Date;

public class TestDate {

    public static void main(String[] args) {

        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);
        System.out.println();
        System.out.println(now.getYear());          // 年
        System.out.println(now.getMonthValue());    // 月
        System.out.println(now.getDayOfMonth());    // 日
        System.out.println(now.getHour());          // 时
        System.out.println(now.getMinute());        // 分
        System.out.println(now.getSecond());        // 秒

        System.out.println(now.getDayOfYear());     // 今年的第几天
        System.out.println(now.getDayOfWeek().getValue());     // 周几
    }
}

获取时间戳的三种方法
System.out.println(Instant.now().toEpochMilli());
System.out.println(new Date().getTime());
System.out.println(System.currentTimeMillis());

算术 Math类

有关数学公式、算术等常用方法

public class TestMath {

    public static void main(String[] args) {
        // 加减乘法
        System.out.println(Math.addExact(2, 3));
        System.out.println(Math.subtractExact(2, 3));
        System.out.println(Math.multiplyExact(2,3));
        System.out.println(Math.max(2,3));
        System.out.println(Math.min(2,3));


        System.out.println(Math.ceil(3.4));  // 4 向上取整
        System.out.println(Math.floor(3.4)); // 3 向下取整
        System.out.println(Math.round(3.45)); // 3 四舍五入
        System.out.println(Math.round(3.55)); // 4 四舍五入


        System.out.println(Math.random());  // 返回[0,1)的伪随机小数
    }
}

定义一个方法,返回指定两数之间的随机数

    // 定义一个方法,返回指定两数之间的随机数
    public static int getRandomInt(int min, int max) {
        return (int)(Math.random() * (max - min + 1) + min);
    }


    // 使用Random类的nextInt()方法, 返回指定两数之间的随机数
    new Random().nextInt(max - min + 1) + min

	// 使用Random类的nextInt()方法 生成0 ~ n-1的随机整数
	new Random().nextInt(n)

标签:Java,--,System,Date,println,now,常用工具,Math,out
From: https://blog.csdn.net/2402_89573492/article/details/144788123

相关文章

  • Java集合
    Java集合单列集合ListArrayListLinkedListVectorArrayList、LinkedList、Vector区别SetHashSetLinkedHashSet双列集合HashMap常用API方法哈希冲突HashMap特点TreeMap单列集合数据存储在一列,继承Collection接口CollectionList:存储列表数据ArrayList:底层数......
  • MySQL主从架构
    MySQL主从架构MySQL主从架构(Master-SlaveArchitecture)是一种常见的数据库高可用性和负载均衡的设计模式,通常用于提高系统的可伸缩性和可靠性。它基于数据复制(replication)机制,其中“主”服务器负责处理所有的写操作,而“从”服务器则通过复制主服务器的数据来保持数据一致性,主要用......
  • MySQL集群MHA
    MySQL集群MHAMHA由两部分构成:MHAManager(管理节点)和MHANode(数据节点)。在主从复制的MySQL集群中,MHAManager负责监控主节点的健康状况,当主节点出现故障时,MHAManager会自动选举出一个从节点升级为主节点,并协调其余从节点重新连接至新的主节点,实现无缝的故障转移。监控与故障检测......
  • MySQL集群mgr
    MySQL集群mgrMySQL集群MGR和MHA的区别MySQLManager(mysqlmgr)适用场景:用于需要高可用性、自动化管理和负载均衡的MySQL集群环境。适合部署基于GroupReplication的InnoDB集群。MHA(MySQLHighAvailability)适用场景:适用于传统的基于主从复制的MySQL环境。需......
  • SOCS0100 Computational Tools
    SOCS0100 Computational Tools for Reproducible Social ScienceSecond Summative AssignmentGuidelines for Completing and Submitting SOCS0100 Assignment:•Thisassessmentisdueon 13 January 2025, 1pm and shallbe submitted on Moodle.......
  • App信息收集
    免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!!附:完整笔记目录~ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!三、App信息收集引子:上一章主要介绍了信息收集中的Web信息收集,包括要收集什么信息、该怎样去做等内容。而本章则简......
  • 基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
    1.算法运行效果图预览(完整程序运行后无水印) PSO优化过程:  PSO优化前后,模型训练对比:    数据预测对比:    误差回归对比:   2.算法运行软件版本matlab2022a 3.部分核心程序(完整版代码包含详细中文注释和操作步骤视频)LR......
  • 2024第一届Solar杯应急响应挑战赛WP
    对于一个只学了2个月的小白来说这种比赛难度还是太高了,还要沉淀一下QAQ内存取证-1题目描述题目文件:SERVER-2008-20241220-162057请找到rdp连接的跳板地址flag格式flag{1.1.1.1}先imageinfo然后netscanF:\CTF软件合集\Misc杂项\隐写工具\取证类\volatility\VolatilityWor......
  • py期末 实验1-6
    选择判断特别是对于范围在-5到256之间的整数。对于这些整数,Python会使用缓存机制,即它们在程序的生命周期内是单例的,所有引用该值的地方都会指向同一个内存地址。while和for可以有elseforiinrange(5):print(i)ifi==3:breakelse:print("循......
  • 34. 在排序数组中查找元素的第一个和最后一个位置
    在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。示......