您的位置 首页 java

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

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

1.DateFormat类

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

public static String ge td ateZH() {
	// 声明一个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  SECOND s = 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中日期格式化的几种方式

文章地址:https://www.zhihuclub.com/180655.shtml

关于作者: 智云科技

热门文章

网站地图