龙空技术网

Java中日期格式化的几种方式

青芽草 218

前言:

今天同学们对“java时间格式化”大约比较关注,小伙伴们都想要分析一些“java时间格式化”的相关内容。那么小编在网上搜集了一些有关“java时间格式化””的相关资讯,希望小伙伴们能喜欢,朋友们一起来学习一下吧!

JAVA字符串转日期或日期转字符串这种需求,相信基本上每个项目都要用到,这是非常高频的要用到的方法,日常主要使用以下几种方法解决。

1.DateFormat类

此类是一个日期的格式化类、专门格式化日期的操作、因为java.util.Date类本身就已经包含了完整的日期、所以只需要将些日期按照一些好的格式格式化一下显示就好了,DateFormat是一个抽象类、按照以住的思路、直接使用其子类实例化即可、但是DateFormat 类本身的内部提供了可以直接为其实例化的操作:

public static String getDateZH() {	// 声明一个DateFormat	DateFormat df1 = null;	// 得到日期的DateFormat对象	df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD, 		new Locale("zh", "CN"));	return df1.format(new Date());}

2.借助SimpleDateFormat类:

public String dateToString(Date d) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(d);}

3.使用String.format()方法:

String.format()的用法类似于C语言的printf,C语言转JAVA的同学一定会喜欢这个方式的:

public String dateToString(Date d) { String format = "%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS"; return String.format(format, d);}

下面对格式字符串说明

"%1$tY" %表示转义,它后面的"1$tY"是格式说明,运行时被替换掉,不会作为普通的字符输出。由于一个参数可能会被格式化好多次,"1$"表示格式化第一个参数,"tY"表示年份, 那么"%1$tY"输出的值为d的年份,比如2017,同理类推:"%1$tm"输出月。

具体的格式化说明请参看java.util.Formatter类的javadoc。

4.使用Calendar自己格式化

public String dateToString(Date d) { Calendar c = Calendar.getInstance(); c.setTime(d); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH) + 1; int dayInMonth = c.get(Calendar.DAY_OF_MONTH); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); int seconds = c.get(Calendar.SECOND); String ret = String.valueOf(year); ret += "-"; ret += month < 10 ? "0" + month : String.valueOf(month); ret += "-"; ret += dayInMonth < 10 ? "0" + dayInMonth : String.valueOf(dayInMonth); ret += " "; ret += hour < 10 ? "0" + hour : String.valueOf(hour); ret += ":"; ret += minute < 10 ? "0" + minute : String.valueOf(minute); ret += ":"; ret += seconds < 10 ? "0" + seconds : String.valueOf(seconds); return ret;}

以上就是常用的几种日期格式转换的方法。

标签: #java时间格式化