SimpleDateFormat函数的继承关系:
java.lang.Object | +----java.text.Format | +----java.text.DateFormat | +----java.text.SimpleDateFormat /
SimpleDateFormat函数语法:
G 年代标志符 y 年 M 月 d 日 h 时 在上午或下午 (1~12) H 时 在一天中 (0~23) m 分 s 秒 S 毫秒 E 星期 D 一年中的第几天 F 一月中第几个星期几 w 一年中第几个星期 W 一月中第几个星期 a 上午 / 下午 标记符 k 时 在一天中 (1~24) K 时 在上午或下午 (0~11) z 时区 */
以下是一些用到的例子:
场景一: 给定毫秒数或者当前系统时间,返回指定时间格式 输入
format 根据SimpleDateFormat对自定义格式的翻译,将date转化为String类型
Date date=new Date();//获得系统当前的时间 // long date=(long)*60000; //任意毫秒数,可以parse转化为日期类型后getTime获取 // long date=29l; System.out.println(date); SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm"); //声明一个SimpleDateFormat变量sd,用于将自定义的日期格式(String类型)转换成format可识别的格式 // SimpleDate sd=new SimpleDateFormat("yyyy-MM-dd HH:mm"); 如此声明也可行 String newdate=sd.format(date); //将data根据转换后的格式转换回自定义的格式(String类型),再赋值给newdate(String类型) return newdate; //返回newdate的值
注意:在第二行和第三行抓化为long类型时要强制性long转换,否则会提示type int is out of range
场景二:给定任意时间格式,返回毫秒数
parse转化为Date类型后可以直接获取毫秒。输入2017-06-28T09:52 返回毫秒
String s="2017-06-28T09:52"; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm"); Date date=sdf.parse(s); System.out.println(date);//Sat Jan 28 09:52:00 CST 2017 System.out.println(date.getTime());
场景三:将给定格式转换为指定格式
输入 06-29-2017 输出 2017/06/29 先parse转化为date类型,再将其format为指定日期类型
String str = "06-29-2017"; SimpleDateFormat sd = new SimpleDateFormat("MM-dd-yyyy"); Date date = (Date) sd.parse(str); System.out.println(date); sd = new SimpleDateFormat("yyyy/MM/dd"); String strDate = sd.format(date); System.out.println(strDate);
场景四:直接将当前毫秒时间转换成自定义格式
拍照的时候 对生成的照片进行命名
//拍照的时候 对生成的照片进行命名 public static String getSaveImageFullName() { return "IMG_" + new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + ".jpg";// 照片命名 }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176727.html原文链接:https://javaforall.net
