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

1.DateFormat类

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

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

2.借助SimpleDateFormat类:

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

3.使用S()方法:

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

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

下面对格式字符串说明

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

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

4.使用Calendar自己格式化

public String dateToString(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.ge);
int month = c.ge) + 1;
int dayInMonth = c.ge);
int hour = c.ge);
int MINUTE = c.ge);
int SECONDs = c.ge);
String ret = S(year);
ret += "-";
ret += month < 10 ? "0" + month : S(month);
ret += "-";
ret += dayInMonth < 10 ? "0" + dayInMonth : S(dayInMonth);
ret += " ";
ret += hour < 10 ? "0" + hour : S(hour);
ret += ":";
ret += minute < 10 ? "0" + minute : S(minute);
ret += ":";
ret += seconds < 10 ? "0" + seconds : S(seconds);
return ret;
}

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

相关推荐