JAVA中这些字母的含义: yyyy:年 MM:月 dd:日 hh:1~12小时制(1-12) HH:24小时制(0-23) mm:分 ss:秒 S:毫秒 E:星期几 D:一年中的第几天 F:一月中的第几个星期(会把这个月总共过的天数除以7) w:一年中的第几个星期 W:一月中的第几星期(会根据实际情况来算) a:上下午标识 k:和HH差不多,表示一天24小时制(1-24)。 K:和hh差不多,表示一天12小时制(0-11)。 z:表示时区
举个栗子:
package com.zzti.stu; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author * @date 2018/10/25 - 18:52 */ public class test { public static void main(String[] args) { formatDataTest(); } private static void formatDataTest() { /* * 日期转期望格式的字符串 */ //HH 和 hh 的差别:前者是24小时制,后者是12小时制。 long start = System.currentTimeMillis(); StringBuilder sb = new StringBuilder(); sb.append("yyyy年MM月dd日 HH:mm:ss") .append(" 上下午标志 a") .append(" E") .append(" 一年中的第D天") .append(" 一月中的第F个星期") .append(" 一年中的第w个星期") .append(" 一月中的第W个星期") .append(" Z") .append(" z"); SimpleDateFormat sdf = new SimpleDateFormat(sb.toString()); String dateString = sdf.format(new Date()); System.out.println(dateString); /* * 字符串转日期 */ Date date; try { date = sdf.parse(dateString); System.out.println(date); } catch (ParseException e) { System.out.println(e.getMessage()); } long end = System.currentTimeMillis(); long a=end-start; System.out.println("花费总时间:"+a); } }运行结果:
字符串转日期:
package com.zzti.stu; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author * @date 2018/10/25 - 21:47 */ public class Test1 { public static void main(String[] args) { String s = "2018-10-20"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = format.parse(s); System.out.println(date); } catch (ParseException e) { System.out.println(e.getMessage()); } } }日期转字符串:
package com.zzti.stu; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author * @date 2018/10/25 - 21:55 */ public class Test2 { public static void main(String[] args) { Date ss = Calendar.getInstance().getTime(); SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = format0.format(ss.getTime());//这个就是把时间戳经过处理得到期望格式的时间 System.out.println("格式化结果0:" + time); SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); time = format1.format(ss.getTime()); System.out.println("格式化结果1:" + time); } }Calender用法:
package com.zzti.stu; import java.text.SimpleDateFormat; import java.time.Month; import java.util.Calendar; public class CalendarDemo { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); // 显示当前时间的年份 int year = cal.get(Calendar.YEAR); // 显示当前时间的月份 (从0开始, 实际显示要加一) int month = cal.get(Calendar.MONTH)+1; // 显示当前时间的天数 int day = cal.get(Calendar.DATE); System.out.println(year+"年 "+month+"月 "+day + "日"); System.out.println("-------------------------"); Calendar cal1 = Calendar.getInstance(); //可以得到设置日期的格式化时间 cal.set(2018, 9, 26, 00, 00, 00); String Date = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(cal.getTime()); System.out.println(Date); System.out.println("-------------------------"); Calendar cal2 = Calendar.getInstance(); // 设置自定义的年份和月份 cal.set(Calendar.YEAR,2018); cal.set(Calendar.MONTH, 1); //得到该自定义日期月份实际的最大天数和最小天数 int max = cal.getActualMaximum(Calendar.DATE); int min = cal.getActualMinimum(Calendar.DATE); System.out.println("max:"+max+" min"+min); } }
