【时间格式】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. 总结,其实很简单,需要认真看。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值