一、基本语法
创建日期对象(取得当前时间)
Date d = new Date();
创建日期格式对象
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
原始日期格式化
String str = sdf.format(d);
格式日期原始化
Date dt = sdf.parse(str);
示例:取得当前时间并将其转化为格式时间输出
package test1;
import java.util.Date; //日期类
import java.text.SimpleDateFormat; //日期转换类
import java.text.ParseException;
public class DateTest {
public static void main(String[] args)
{
//创建日期对象
Date d = new Date();
//创建日期格式对象
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//日期转换为字符串
String str = s.format(d);
//输出结果
System.out.println(str);
}
}
示例:将格式时间转化为原始时间
package test1;
import java.util.Date; //日期类
import java.text.SimpleDateFormat; //日期转换类
import java.text.ParseException;
public class DateTest {
public static void main(String[] args)
{
//字符串转换为日期
String t = "2024-05-25 01:32:57";
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt = null;
try {
dt = sd.parse(t);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(dt);
}
}
二、进阶用法
getTime用于存储现在距离1970年的毫秒数
long t=d.getTime();
setTime 是getTime的反向
示例:求一百天后是几月几号
package test1;
import java.util.Date;
public class DateTest2 {
public static void main(String[] args)
{
//getTime用于存储现在距离1970年的毫秒数
//t存储的是距离1970年的毫秒数
Date d = new Date();
long t=d.getTime();
//System.out.println(t);
//setTime是getTime的反向转化
//求一百天以后的日期
Date date= new Date();
date.setTime(date.getTime()+100L*60*60*24*1000);
System.out.println(date);
}
}
示例:求解今天距离1949.10.1几天
package test1;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest3 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date fsv = new Date();
String s = "1949-10-1";
fsv = sdf.parse(s);
Date now = new Date();
long tmp = now.getTime() - fsv.getTime();
int ans = (int) (tmp/(60*60*24*1000));
System.out.println(ans);
}
}