Date、String、Calendar类型日期之间的转化

一.获取当前时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
String dateStr = sdf.format(Calendar.getInstance().getTime());
String dateStr1 = sdf1.format(Calendar.getInstance().getTime());
String dateStr2 = sdf2.format(Calendar.getInstance().getTime());
String dateStr3 = sdf3.format(Calendar.getInstance().getTime());

System.out.println(dateStr);
System.out.println(dateStr1);
System.out.println(dateStr2);
System.out.println(dateStr3);

结果
2020-11-03
2020-11-03 10:25:21
2020年11月03日
2020年11月03日 10:25:21

二.String 时间转换为得到年月日

String str="2020-5-27";
Date date = null;
try {
    date = sdf.parse(str);
} catch (ParseException e) {
    e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH) + 1);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

2020
5
27

三.Date 转化String

String dateStr4 = sdf.format(new Date());
System.out.println(dateStr4);

四.String 转化Date

String str="2020-5-27";
Date date = null;
try {
    date = sdf.parse(str);
} catch (ParseException e) {
    e.printStackTrace();
}

五.Date 转化Calendar

long currentTimeMillis = System.currentTimeMillis();
String s = String.valueOf(currentTimeMillis);
System.out.println(sdf1.format(currentTimeMillis));
System.out.println(sdf1.format(Long.valueOf(s)));

2020-11-03 11:26:45
2020-11-03 11:26:45
    
// 10位的秒级别的时间戳
long time1 = 1527767665;
String result1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(time1 * 1000));
System.out.println("10位数的时间戳(秒)--->Date:" + result1);
Date date1 = new Date(time1*1000);   //对应的就是时间戳对应的Date
// 13位的秒级别的时间戳
double time2 = 1515730332000d;
String result2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time2);
System.out.println("13位数的时间戳(毫秒)--->Date:" + result2);


10位数的时间戳(秒)--->Date:2018-05-31 19:54:25
13位数的时间戳(毫秒)--->Date:2018-01-12 12:12:12
    
//获取指定时间的时间戳,除以1000说明得到的是秒级别的时间戳(10位)
long time = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse("2018-06-30 20:00:00", new ParsePosition(0)).getTime() / 1000;
 
//获取时间戳
long now1 = System.currentTimeMillis();
long now2 = new Date().getTime();

System.out.println("获取指定时间的时间戳:" + time);
System.out.println("当前时间戳:" +now1);
System.out.println("当前时间戳:" +now2);
    
获取指定时间的时间戳:1530360000
当前时间戳:1527769494340
当前时间戳:1527769494340

你可能感兴趣的:(Date、String、Calendar类型日期之间的转化)