Java SimpleDateFormat进行日期格式化

一,为啥要用SimpleDateFormat众所周知,Java中的日期类是Date,然后日期默认的输出样式很奇怪哦,是这样子的:packageorg.maoge.common;importjava.util.Date;publicclassSimpleDateFormatDemo{publicstaticvoidmain(String[]args){

大家好,又见面了,我是你们的朋友全栈君。

点此查看全部文字教程、视频教程、源代码

1. 为啥要用SimpleDateFormat

众所周知,Java中的日期类是Date,然后日期默认的输出样式很奇怪哦,是这样子的:

package org.maoge.common;
import java.util.Date;
public class SimpleDateFormatDemo { 
   
	public static void main(String[] args) { 
   
		//默认输出格式
		Date date=new Date();
		System.out.println(date);//Fri Oct 27 16:56:37 CST 2017
	}
}

真的好像说,这是什么鬼啊,神经病啊,老板要是发现你在前端把日期显示成这样子,非要…觉得你很有个性不可。

OK,所以就很需要将日期以一种我们想要的格式显示出来

另外,有时候我们需要指定一个日期,所以也需要将字符串类型转换为Date类型,我们往往会以为是这样子的:

这里写图片描述

首先我们就注意到了new Date()方法被划上了删除线,这个就表示该方法在定义的时候被@Deprecated注解注解过了,意思是该方法过期了不建议使用了可能有问题了,反正咱知道这个方法最好不用就是了。而且,确实也报错了,所以我们也需要一种将字符串转换为日期的方法

SimpleDateFormat就是为这两种需要诞生滴,类库嘛,就是前人搭棚好乘凉,而且都是牛逼的前人。

2. 日期格式化显示

首先要记住一些标记:(注意大小写)

年yyyy
月MM
日dd
时HH
分mm
秒ss
毫秒SS

然后直接看例子:

package org.maoge.common;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo { 
   
	public static void main(String[] args) { 
   
		//默认输出格式
		Date date=new Date();
		System.out.println(date);//Fri Oct 27 16:56:37 CST 2017
		//日期格式化显示,首先定义格式
		SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");//显示20171027格式
		SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");//显示2017-10-27格式
		SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//显示2017-10-27 10:00:00格式
		SimpleDateFormat sdf4=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");//显示2017年10月27日10时00分00秒格式
		//将格式应用于日期
		System.out.println(sdf1.format(date));//20171027
		System.out.println(sdf2.format(date));//2017-10-27
		System.out.println(sdf3.format(date));//2017-10-27 17:11:13
		System.out.println(sdf4.format(date));//2017年10月27日17时11分13秒
	}
}

3. 将字符串转换为对应日期

注意,因为可能定义的格式和实际字符串提供的格式不符合,所以会抛出异常

package org.maoge.common;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo { 
   
	public static void main(String[] args) { 
   
		//首先定义格式
		SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");
		SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//按格式进行转换
		String strDate1="20151010";//符合sdf1格式
		String strDate2="20171027 10:00:00";//不符合格式
		try { 
   
			Date date1=sdf1.parse(strDate1);
			System.out.println(date1);//正常输出Sat Oct 10 00:00:00 CST 2015
			Date date2=sdf2.parse(strDate2);//报错java.text.ParseException: Unparseable date: "20171027 10:00:00"
			System.out.println(date2);
		} catch (ParseException e) { 
   
			e.printStackTrace();
		}
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125689.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 浅谈Android指纹识别技术[通俗易懂]

    浅谈Android指纹识别技术[通俗易懂]浅谈Android指纹识别技术当今时代,随着移动智能手机的普及,指纹解锁早已是手机不可或缺的一个功能。除了现在比较新款的iPhone或者部分手机采用了FaceID之外,人们几乎天天都会用到指纹解锁技术。但你知道指纹解锁技术背后的原理吗?原理指纹识别的前提是对指纹的采集,所以我们首先就应该了解第一步:指纹采集。第一步:指纹采集指纹采集主要分为两种方式:滑动式采集和按压式采集滑动式采集是将手指在传感器上滑过,从而使手机获得手指指纹图像。滑动式采集具有成本相对偏低,而且可以采集大面积图像的优势。但这

  • HTML的表单元�

    HTML的表单元�

  • 一文搞懂Spark的Task调度器(TaskScheduler)[通俗易懂]

    一文搞懂Spark的Task调度器(TaskScheduler)[通俗易懂]TaskScheduler的核心任务是提交TaskSet到集群运算并汇报结果。为TaskSet创建和维护一个TaskSetManager,并追踪任务的本地性及错误信息。遇到Straggle任务会放到其他结点进行重试。向DAGScheduler汇报执行情况,包括在Shuffle输出丢失时报告fetchfailed错误等信息。TaskScheduler底层调度器1.TaskScheduler原理剖析2.TaskScheduler源代码解析2.1TaskScheduler实例化源代码.

    2022年10月10日
  • php_network_getaddresses: getaddrinfo failed 原因

    php_network_getaddresses: getaddrinfo failed 原因

  • c++入门教程–-14二维数组

    c++入门教程–-14二维数组

  • MJKDZ PS2手柄控制OskarBot小车(二):硬件连接与通信时序

    MJKDZ PS2手柄控制OskarBot小车(二):硬件连接与通信时序MJKDZPS2手柄控制OskarBot小车(二):硬件连接与通信时序【目录】    -1、PS2硬件连接        -1.1硬件连接原理图        -1.2硬件接口关系对比    -2、通信协议        -2.1PS2通信硬件接口与信号        -2.2PS2通信时序        -2.3PS2手柄各数据的意义…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号