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();
		}
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Matlab求解非线性规划,fmincon函数的用法总结「建议收藏」

    Matlab求解非线性规划,fmincon函数的用法总结「建议收藏」Matlab求解非线性规划,fmincon函数的用法总结1.简介在matlab中,fmincon函数可以求解带约束的非线性多变量函数(Constrainednonlinearmultivariablefunction)的最小值,即可以用来求解非线性规划问题matlab中,非线性规划模型的写法如下\[min\f(x)\\s.t.\begin{equation}…

    2022年6月6日
  • c语言 xml解析库,轻量级C语言实现的minixml解析库入门教程

    c语言 xml解析库,轻量级C语言实现的minixml解析库入门教程svn上的minixml源码下载。svncohttp://svn.msweet.org/mxml/tags/release-2.7/按照下载回来的源代码进行编译和安装。本教程只针对新手做一个引导,大神见笑了,可以直接绕道。愿这个教程给你带来帮助。即:./configuremakemakeinstall随后就可以开始使用非常简洁的并可以跨很多平台的minixml更换平台只需要将xml库使用不同…

    2022年7月14日
  • 使用gradle打包jar包

    使用gradle打包jar包

    2021年12月8日
  • linux 查看文件夹大小「建议收藏」

    linux 查看文件夹大小「建议收藏」最简单的查看方法可以使用ls-ll、ls-lh命令进行查看,当使用ls-ll,会显示成字节大小,而ls-lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du-h–max-depth=1*,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用du-sh,其中s代表统计汇总的意思,即只输出一个总和大小。…

    2022年10月27日
  • shell脚本export变量只限脚本内么_shell脚本调用oracle存储过程

    shell脚本export变量只限脚本内么_shell脚本调用oracle存储过程shell脚本中export命令未生效,原因详解问题:我有一个脚本,脚本中有如下一条语句exportfdu=“dufan”用sh运行脚本后,在当前shell利用命令env查看环境变量,但是却没有fdu变量,难道是因为我的export语句没有生效?解决结果:脚本中的export一定是生效的利用source执行脚本,在当前shell即可查看到fdu环境变量。这个问题涉及了三个知识点:变量(环境变量、自定义变量)父进程与子进程脚本的执行方式什么是变量?变量的分类?1.

    2022年9月6日
  • oracle存储过程回滚_sql事务回滚

    oracle存储过程回滚_sql事务回滚创建表createtableCourse (NoINT,Namenvarchar(10),Commentnvarchar(10))插入数据insertintocoursevalues(‘332′,’语言在’,’234′)insertintocoursevalues(‘332′,’语言在’,’234′)创建存储过程ALTER

    2022年10月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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