笔记:SimpleDateFormat使用方法

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)24979599*60000;    //任意毫秒数,可以parse转化为日期类型后getTime获取

//      long date=1498838705129l;

        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";// 照片命名
}

猜你喜欢

转载自blog.csdn.net/weixin_42325507/article/details/81140720
今日推荐