Date、LocalDateTime、时间戳、日期字符串互转

2024-05-24 09:52

本文主要是介绍Date、LocalDateTime、时间戳、日期字符串互转,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

由于历史原因,项目上使用Date、LocalDateTime、时间戳甚至日期字符串的情况五花八门,在每次参数传递的时候,遇到类型不一致的时候就会很痛苦,接下来就总结下这些类之间到底怎样互转。

1 From Date

Date作为老牌的日期处理类,用到它的地方一定很多,首先针对Date做下总结:

1.1 dateToString

// 经典的SimpleDateFormat,注意SimpleDateFormat是非线程安全的,所以每次使用都要new一个对象
public static String dateToString(Date date) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return sdf.format(date);
}

1.2 dateToTimestamp

// Date转毫秒时间戳
public static long dateToMilliSeconds(Date date) {return date.getTime();
}// Date转秒时间戳
public static long dateToSeconds(Date date) {return date.getTime() / 1000;
}// Date转纳秒时间戳, 由于Date只精确到毫秒级,所以直接乘以6个0即可
public static long dateToNanos(Date date) {return date.getTime() * 1000 * 1000;
}

1.3 dateToLocalDateTime

public static LocalDateTime dateToLocalDateTime(Date date) {long milliSeconds = date.getTime();Instant instant = Instant.ofEpochMilli(milliSeconds);return LocalDateTime.ofInstant(instant);
}

2 From LocalDateTime

2.1 localDateTimeToString

public static DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");public static String localDateTimeToString(LocalDateTime localDateTime) {return dateTimeFormatter.format(localDateTime);
}

2.2 localDateTimeToTimestamp

public static ZoneId zoneId = ZoneId.systemDefault();// 转毫秒时间戳
public static long localDateTimeToMilliSeconds(LocalDateTime localDateTime) {return localDateTime.atZone(zoneId).toInstant().toEpochMilli();
}// 转秒时间戳
public static long localDateTimeToSeconds(LocalDateTime localDateTime) {return localDateTime.atZone(zoneId).toEpochSecond();
}// 转"秒.纳秒"时间戳
public static String localDateTimeToNanos(LocalDateTime localDateTime) {ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);return String.format("%d.%d", zonedDateTime.toEpochSecond(), zonedDateTime.getNano()));

2.3 LocalDateTimeToDate

public static LocalDateTime localDateTimeToDate(LocalDateTime localDateTime) {ZoneId zoneId = ZoneId.systemDefault();ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);Instant instant = zonedDateTime.toInstant();long milliSeconds = instant.toEpochMilli();return new Date(milliSeconds);
}

这篇关于Date、LocalDateTime、时间戳、日期字符串互转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/998077

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

python修改字符串值的三种方法

《python修改字符串值的三种方法》本文主要介绍了python修改字符串值的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录第一种方法:第二种方法:第三种方法:在python中,字符串对象是不可变类型,所以我们没办法直接

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

C#中字符串分割的多种方式

《C#中字符串分割的多种方式》在C#编程语言中,字符串处理是日常开发中不可或缺的一部分,字符串分割是处理文本数据时常用的操作,它允许我们将一个长字符串分解成多个子字符串,本文给大家介绍了C#中字符串分... 目录1. 使用 string.Split2. 使用正则表达式 (Regex.Split)3. 使用

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit