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

Java中时间之间的转换

Java中常见的时间类有:Date、Calendar、SimpleDateFormat等。下面对不同时间类之间的转换进行介绍。

        1、Date和Calendar之间的转换

Date和Calendar都可以表示时间,但是它们的使用方式不同。Date是一个表示特定时间点的类,而Calendar则是一个带有日历信息的类,可以进行日期和时间的计算。在Date和Calendar之间进行转换,可以使用如下代码:

// Date转换为Calendar
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);// Calendar转换为Date
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();

        2、Date和字符串之间的转换

在Java中,可以使用SimpleDateFormat类将Date类型转换为字符串类型,也可以将字符串类型转换为Date类型。代码如下:

// Date类型转换为字符串类型
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(date);// 字符串类型转换为Date类型
String strDate = "2022-10-01 12:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(strDate);

        3、Calendar和字符串之间的转换

将Calendar类型转换为字符串类型,可以使用SimpleDateFormat类,也可以直接调用Calendar类的toString()方法。将字符串类型转换为Calendar类型,需要先将字符串转换为Date类型,再利用Calendar实例转换。

// Calendar类型转换为字符串类型
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(calendar.getTime());// 字符串类型转换为Calendar类型
String strDate = "2022-10-01 12:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(strDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

        4、时间戳转换

可以使用Java中的java.time和java.util包来实现时间转换为时间戳的功能。

以下是一个示例代码:

import java.time.LocalDateTime;
import java.time.ZoneOffset;public class TimeUtil {public static long getTimeStamp(String timeStr) {LocalDateTime localDateTime = LocalDateTime.parse(timeStr);return localDateTime.toEpochSecond(ZoneOffset.ofHours(8));}public static void main(String[] args) {String timeStr = "2022-01-01T00:00:00";long timeStamp = getTimeStamp(timeStr);System.out.println("时间:" + timeStr);System.out.println("时间戳:" + timeStamp);}
}

在上面的代码中,我们首先将传入的时间字符串解析为LocalDateTime对象,然后使用toEpochSecond方法将其转换为以秒为单位的时间戳。在这个示例中,我们使用了UTC+8时区,你可以根据需要修改时区。

http://www.lryc.cn/news/256622.html

相关文章:

  • 【win32_005】调试信息打印到控制台----2种简单方法
  • PPT添加备注
  • Ubuntu20.04使用cephadm部署ceph集群
  • 激光打标机在智能手表上的应用:科技与时尚的完美结合
  • ROS-ROS通信机制-参数服务器
  • 在github中通过action自动化部署 hugo academic theme,实现上传md文件更新博客内容
  • 深入理解asyncio:异步编程的基础用法
  • Android 消息分发机制解读
  • 【ML】LSTM应用——预测股票(基于 tensorflow2)
  • 汇编语言程序设计实验报告
  • 广域网(WAN)设备通信过程(通信流程、通信步骤、通信顺序、设备通信、主机通信)(MAC地址在本地链路中的作用)跳跃(hop)
  • ExoPlayer架构详解与源码分析(10)——H264Reader
  • 智能优化算法应用:基于粒子群算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 微积分-序言
  • ArchLinux安装详细步骤
  • react 学习笔记 李立超老师 | (学习中~)
  • Docker镜像和容器的简单操作
  • 章鱼网络进展月报 | 2023.11.1-11.30
  • 基于Maven构建OSGI应用(Maven和OSGI结合)
  • oracle分组排序后取第一条
  • MAMBA介绍:一种新的可能超过Transformer的AI架构
  • win系统一台电脑安装两个不同版本的mysql教程
  • esp32-s3部署yolox_nano进行目标检测
  • TCP传输数据的确认机制
  • 使用Ansible Expect模块实现自动化交互式任务
  • 51单片机独立按键以及矩阵按键的使用以及其原理--独立按键 K1 控制 D1 指示灯亮灭以及数码管显示矩阵按键 S1-S16 按下后键值 0-F
  • chrome安装jsonview
  • 使用TouchSocket适配一个c++的自定义协议
  • VSC改造MD编辑器及图床方案分享
  • SpringBoot的依赖管理和自动配置