【时间格式】Java中的时间格式转换

别再傻傻分不清了!一文搞懂Java中的ISO 8601、RFC 3339时间格式区别与实战转换 本文深入解析Java中ISO 8601与RFC 3339时间格式的核心区别与实战转换技巧,涵盖时区表示、Java 8+时间处理API及典型问题排查。通过对比示例和最佳实践,帮助开发者高效处理API对接、日志记录等场景中的时间格式问题,特别适合需要精确时间管理的Java开发者。 阅读详情

1. 理论知识:

/**   
* 'Z' 标识 格林威治时间格式,一般有一些标准和一些规范会 添加 'Z' 标识标准,但其实带不带 'Z'都可以
*
* 一般  常用 四种:  (只要确定了 格式,不管是 String 转 Date 还是  Date 转 String 都毫无压力) 
*	     new SimpleDateFormat( "yyyyMMddHHmmss'Z'")       
*	     new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
*	     new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
*	     new SimpleDateFormat("yyyy-MM-dd")
* 一般,在 Date 转 String 的时候就决定了 格式,因为 手动输入 String 必须符合一定的格式
*/

2. 代码示例,认真看,这个代码足够了。

/**      
 * @Author 江岩    
 * @Time 2019-07-23 18:06     
 */
package cn.com.infosec.netcert.caAdmin.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

/**   
 * @Description (补充描述) 
 * @Author jy
 * @Time 2019-07-23 18:06
 */
public class Test_timeChange {

	/**        
	 * @Author jy 
	 * @Time   2019-07-23 18:06
	 * @version 1.0 
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {
		// Calendar 和  Date
		Test_timeChange.Calendar_And_Date();
		// Date 和 String
		Test_timeChange.Date_to_String();
		// String 到 Date 
		Test_timeChange.String_to_Date();
	}

	// Date 转换 为 String
	public static void Date_to_String() throws ParseException {
		// Date 转 String
		Date date = new Date();
		System.out.println(date); // 当前时间输出显示为 :Thu Jul 25 10:16:44 CST 2019

		SimpleDateFormat df_1 = new SimpleDateFormat("yyyyMMddHHmmss'Z'");
		String str_1 = df_1.format(date);
		System.out.println(str_1); // 输出显示为 : 20190725101644Z

		SimpleDateFormat df_2 = new SimpleDateFormat("yyyyMMddHHmmss'Z'");
		df_2.setTimeZone(TimeZone.getTimeZone("GMT"));
		String str_2 = df_2.format(date);
		System.out.println(str_2); //输出显示为: 20190725021644Z  GMT 国际时间格式,中国时间 = GMT + 8小时,所以输出 时间要早8小时

		SimpleDateFormat df_3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str_3 = df_3.format(date);
		System.out.println(str_3); // 输出显示为 : 20190725101644Z

	}
	// String 转换为  Date
	public static void String_to_Date() throws ParseException {
		// String 转换为 Date 时,String有没有 Z 都可以,格式中会处理
		//  切记 不要将 "20190725102542Z" 按 new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 格式转换就行,解析时格式不匹配
		String str_4 = "20190725102542Z";
		SimpleDateFormat df_4 = new SimpleDateFormat("yyyyMMddHHmmss");
		Date date_4 = df_4.parse(str_4);
		System.out.println(date_4); // 输出显示为 : Thu Jul 25 10:25:42 CST 2019

		String str_5 = "2019-07-25 10:25:42Z"; // 有没有Z没有影响
		SimpleDateFormat df_5 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date_5 = df_5.parse(str_5);
		System.out.println(date_5); // 输出显示为 : Thu Jul 25 10:25:42 CST 2019
	}

	// 讲清楚 Calendar 和  Date 的 关系
	public static void Calendar_And_Date() {

		Calendar c = Calendar.getInstance();
		c.set(Calendar.YEAR, 2019);
		c.set(Calendar.MONTH, 8); // 输出的结果是 9月,表示月的标识有 :MONTH_OF_YEAR 和 MONTH ,请慎重使用
		c.set(Calendar.DAY_OF_MONTH, 2); // 输出结果 是 2月,标识日的标识有 DAY_OF_MONTH 和 DATE ,两者结果一致,建议使用前者
		c.set(Calendar.HOUR_OF_DAY, 22); // 输出结果是 22时,表示时的标识 有 HOUR_OF_DAY 和 HOUR ,其中 HOUR 为12显示法,超过12默认进位,推荐使用 前者
		c.set(Calendar.MINUTE, 30);
		c.set(Calendar.SECOND, 10);

		// 通常日历需要先转 Date
		Date date = c.getTime();
		System.out.println(date); // 输出显示为  Mon Sep 02 22:30:10 CST 2019  ,此为Date格式
		// 特别注意 c.set(xxxx,xxx); 任何值没有手动设置,将获取当前计算机的时间/系统时间 
	}

	// 应用场景: 数据库获取 20190725101644Z,输出为 2019-07-25 10:16:44 
	public static void demo() throws ParseException {
		// 先根据 String的格式 转为 Date
		String str_6 = "20190725101644Z";
		SimpleDateFormat df_6 = new SimpleDateFormat("yyyyMMddHHmmss");
		Date date_6 = df_6.parse(str_6);
		System.out.println(date_6); // 输出显示为:Thu Jul 25 10:16:44 CST 2019
		// 再根据需要的格式,转为 String
		SimpleDateFormat df_7 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str_7 = df_7.format(date_6);
		System.out.println(str_7); // 输出显示为: 2019-07-25 10:16:44
	}
}

3. 总结,其实很简单,需要认真看。

 

 

Java程序中的时间格式与数据库中的时间格式转换 在上面的示例中,我们首先获取当前日期和时间,并使用相同的日期时间格式(“yyyy-MM-dd HH:mm:ss”)将其格式化为字符串。本文将介绍如何将Java程序中的时间格式转换为数据库中的时间格式,并提供相应的源代码。通过使用Java的日期和时间类以及数据库的日期和时间类型,我们可以轻松地在两者之间进行数据转换。使用适当的格式化器,我们可以将日期和时间从Java程序转换为数据库所需的格式,并进行存储和检索操作。在与数据库进行交互时,我们通常需要将Java程序中的日期和时间转换为数据库所需的格式。 阅读详情

相关推荐

计算机国际会议中的proceedings、conference、paper、workshop、demo:如何区分与选择?

本文详细解析了计算机国际会议中的核心概念:Conference(会议)是学术交流的主舞台,Paper(论文)是研究成果的书面呈现,被接收后收录于Proceedings(会议论文集)。Workshop(研讨会)聚焦前沿细分领域,Demo(演示)则侧重系统与工具的可交互展示。文章为研究者根据自身阶段与工作类型,如何区分与选择投稿目标提供了实用指南。

weixin_29269441的博客 562

Eclipse 非常有用命令

ctrl+shift+G 查找所有调用此方法的地方

473687880 115

【实战指南】利用CAN适配器高效调试CAN总线通信

本文提供了一份利用CAN适配器高效调试CAN总线通信的实战指南。文章从硬件连接、终端电阻配置、软件参数设置等基础环节入手,详细解析了CAN适配器作为关键调试工具的工作原理与使用方法,并针对常见的通信故障提供了系统化的问题排查思路,帮助工程师快速打通通信链路,提升调试效率。

weixin_28285943的博客 412

Java时间日期格式转换

Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new S.

baidu_28705493的博客 4102

Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码)

本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。

weixin_42531710的博客 265

ITK-snap进行分割区域标注、三维显示及改变显示颜色

在进行医学图像器官分割时,无论我们是用传统方法还是深度学习,最后肯定要用到手动分割的区域作为金标准来验证我们方法的精度。但是手动标注器官的轮廓是十分耗时的,这里我介绍一个比较简单的标注方法,以肺分割作为例子。 我们使用ITK-snap作为分割标注工具。 当切片间距离比较小时,比如1mm,一个患者的完整HRCT序列通常在200张以上,如果让医生一一进行分割区域标注是非常耗时乏味的。因此,我们可以使用最简单的阈值法比如OSTU,加上基本的形态学操作对肺进行粗分割得到粗略的分割掩码,在此基础上再手动的对分割结果进

u010409517的博客 2万+

Java转换解析中间带有 “T“和“Z“ 的时间格式

今天遇到这样的时间格式需要进行转化 2021-11-02T05:55:14.428Z 转换代码如下 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class TimeFormat { public static void main(Stri

见证自己学习,成长的记录 1万+

TC3XX - MCAL知识点(三十九):AURIX™ TC3xx 的EDSADC实现旋变解码功能(应用笔记记录)

本文总结了英飞凌应用笔记中关于EDSADC旋变解码系统的关键内容。系统通过调幅解调获取电机位置和速度信号,支持内外载波生成方案,其中内部载波方案更常用(需2个DSADC通道)。重点介绍了滤波器链配置建议(避免FIR1)、系统条件要求(如偶数积分周期)以及群延迟计算方法。特别分析了SDCAP功能对硬件延迟的补偿机制,指出温度等因素可能导致外部电路延迟变化,需通过计数器测量并通过软件调整积分器起始点来消除角度误差。文中还提供了不同硬件延迟情况下的信号处理示例。

梦想技术家 458

Java 将带有 ‘T’的时间字符串转换成yyyy-MM-dd HH:mm:ss 格式

看代码: //将带有T的时间字符串转换成yyyy-MM-dd HH:mm:ss public static String convertDate(String strDate) { String str = ""; try { String fmt = "yyyy-MM-dd HH:mm:ss"; ...

默默不代表沉默 1万+

Unreal Engine开发:多人联机与网络同步_延迟补偿与预测

通过延迟补偿和预测技术,我们可以显著减少网络延迟对多人在线动作游戏的影响,提升玩家的体验。延迟补偿主要在服务器端实现,通过回溯时间点来更准确地处理输入和事件。预测技术主要在客户端实现,通过预先计算玩家的动作结果来减少延迟感。结合这两种技术,可以实现更平滑、更公平的多人游戏体验。

chenlz2007的博客 1191

AIGC游戏本地化:用AI实现多语言自动翻译

游戏本地化是游戏全球化战略的关键环节,传统人工翻译方式成本高、周期长。本文旨在探讨如何利用AIGC技术实现高效、准确、低成本的游戏多语言自动翻译解决方案。我们将覆盖从文本翻译到语音合成的完整本地化流程,重点关注AI技术在游戏特定语境下的应用优化。文章首先介绍游戏本地化的核心挑战和AI解决方案,然后深入讲解关键技术原理,接着通过实战项目演示具体实现,最后讨论应用场景和未来趋势。AIGC:人工智能生成内容,指利用AI技术自动生成文本、图像、音频等内容本地化(Localization)

AI 领航者的博客 1337

java中的时间格式转换

java中的时间格式转换 说明:这里以Date为例(也可以换成其他格式的日期) SimpleDateFormat的format()方法将日期转为字符串 SimpleDateFormat的parse()方法将字符串转为日期 //设置时间格式 String s = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat f = new SimpleDateFormat(s); 日期时间格式: 含义 举例 y 年份 一般用 yy 表示两位年份,yyyy 表示 4 位年份

多味花生的博客 5208

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java中的时间格式以及js中的时间格式转换

java格式转换 /** * 时间转字符串 * @param date */ public static String DateToString(Date date){ SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return ...

小刘的博客 203

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Excel导入时间格式在Java中的转换

我们从Excel中获取的时间格式日期(例如 2018-05-01)实际在Java中获取的值为4000多的一个数值,这个数值是距离1900-01-01的天数; //时间转换 Calendar c = new GregorianCalendar(1900,0,-1); Date date= DateUtils.addDays(c.getTime(), ""); 此时的data值就是转换成Dat...

qq_41377914的博客 8484

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java转换excel表格中的时间格式,比如excel表格中时间格式异常

经常见到excel表格中的日期和时间前面少了个0,比如正常应该是01/02/2016,但是在excel表格中显示就是1/2/2016;这是由于excel表格中的时间格式受操作系统格式的控制,在控制面板--区域和语言中: java在读取这些时间的时候,由于程序通常情况只支持几种常用的格式,比如yyyy/MM/dd或者MM/dd/yyyy等,因此要将这些奇葩的时间格式转换成通用格式:

qq_28108861的博客 2645

Oracle中和Java中的字符串转换为时间格式(常用方式)

一、Oracle中的时间格式转换 1、to_date('待转换字符串', '转换格式') 注意:待转换字符串与转换格式必须为同一类型格式,并且月份和分钟不可以都使用mm或者MM,即使大小写不同也不可以 举例: --12小时制,即字符串中的代表小时的数字HH不允许大于12 Select to_date('20191231130000', 'yyyyMMddHHmiss') ...

qq_27677039的博客 1034

Java中的CST-UTC时间格式相互转换

CST-UTC有多种转换方式,本次仅记录SimpleDateFormat的转换。

veritable的博客 2754

java中的时间格式转换案例

Long nowtime = System.currentTimeMillis(); //获取当前时间戳 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String cin01 = sdf.format(nowtime); String cin02 = sdf.format(new Date(nowtime)); String cin03 = sdf.format(nowtime); System.out.printl

data_curd的博客 249

Oracle数据库中的时间格式和java中时间格式的转换

在jdbc操作数据库时,把 java.util.Date中的时间加到数据空中,格式的转换 从java到数据库中,转换格式:new java.sql.Timestamp(new Date().getTime())在数据库中获得时间,转换成java.util.Date格式的时间 从数据库到java程序中转换格式:rs.getTimestamp("createtime")其中createtime为数...

weixin_30735745的博客 372

Java 中的 SimpleDateFormat 【 parse 和 format 】【转换时间格式】

    在 Java 里面有很多特别方便的函数(尽管术语可能不这么说)可以供我们使用,让一些本来要写好长好多的代码的事情变得仅仅几行就解决了。 在 SimpleDateFormat 中,有以下特定的规则:           G 年代标志符     y 年     M 月     d 日     h 时(在上午或者下午 12小时制)     H 时(在一天中 24小时制) m 分     ...

Mercury_Lc的博客 1045

oracle数据库时分秒格式_Oracle数据库中的时间格式和java中时间格式的转换

在jdbc操作数据库时,把 java.util.Date中的时间加到数据空中,格式的转换从java到数据库中,转换格式:new java.sql.Timestamp(new Date().getTime())在数据库中获得时间,转换成java.util.Date格式的时间从数据库到java程序中转换格式:rs.getTimestamp("createtime")其中createtime为数据库中时...

weixin_42315341的博客 450

JAVA中的SimpleDateFormat使用(时间格式转换)

在实际开发中,总会把时间Date转换各种实现的格式,比如说2016年03月12日 09时20分29秒 , 2016-03-12 09:20:29 等等,这里就可以用SimpleDateFormat来实现,对SimleDateFormat的详解可参考SimpleDateFormat使用详解,我们在只是简单看一下它的使用 import java.text.ParseExcepti

hukaiguo的博客 1118

JS时间格式CST转GMT

转换方法:JS 时间格式CST转GMT 时区和Date:Java中的Date和时区转换 转载于:https://www.cnblogs.com/ZeGod/p/10446648.html

Harry_123321的博客 349
上一篇: 【端口占用】
下一篇: 【编码格式】utf-8、gbk、ISO-8859-1、ASCII
jy0921_
博客等级 码龄11年 329粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值