1、Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间
public class DateTest {
@Test
public void test01(){
Date date = new Date();
System.out.println(date.toString());
}
Thu Apr 14 17:33:30 CST 2022
2、getTime()与System.currentTimeMillis(),该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
@Test
public void test02(){
Date date = new Date();
//Thu Apr 14 16:46:02 CST 2022
System.out.println(date);
long time = date.getTime();
//1649925962219毫秒数 从1970-01-01 00:00:00到程序运行结束的毫秒数
System.out.println(time);
long millis = System.currentTimeMillis();
//1649926153085毫秒数 1970-01-01 00:00:00 到程序运行结束
System.out.println(millis);
Thu Apr 14 17:33:30 CST 2022
1649928810601
1649928810615
3、设置时间的年月日,时分秒,星期几的方法实现,代码如下
@Test
public void test03(){
//日期时间
StringBuilder dateText = new StringBuilder();
Date date = new Date();
//年
int year = date.getYear() + 1900;
dateText.append(year+"年");
//月
int month = date.getMonth();
dateText.append(month < 10 ? "0" + month + "月":month + "月");
//日
int dateri= date.getDate()+1;
dateText.append(dateri < 10 ? "0" + dateri + "日":dateri + "日");
//小时
int hours = date.getHours();
dateText.append(hours< 10 ? " 0" + hours + "时":" "+hours + "时");
//分钟
int minutes = date.getMinutes();
dateText.append(minutes < 10 ? "0" + minutes + "分":minutes + "分");
int seconds = date.getSeconds();
dateText.append(seconds < 10 ? "0" + seconds + "秒":seconds + "秒");
//星期
int day = date.getDay();
String weekday=" 星期";
switch (day){
case 1 -> weekday += "一";
case 2 -> weekday += "二";
case 3 -> weekday += "三";
case 4 -> weekday += "四";
case 5 -> weekday += "五";
case 6 -> weekday += "六";
default -> weekday += "日";
}
dateText.append(weekday);
System.out.println(dateText.toString());
}
2022年04日14日 17时50分59秒 星期四
4、简单方法实现设置时间的年月日,时分秒,用setTimeZone方法设置时区
主要是使用 SimpleDateFormat 格式化日期,实例化一个时间字符串格式对象,并传入时间字符串模板,其中yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。
@Test
public void test03(){
Date date = new Date();
System.out.println(date);
//实例化一个时间字符串格式对象,并传入时间字符串模板
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//设置时区 上海
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
//将日期对象根据之前的时间字符串模板格式化为时间字符串;
String format = dateFormat.format(date);
System.out.println(format);
}
2022-04-14 17:59:01
5、parse()它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串
@Test
public void test04(){
String source="1983-11-22 20:30:00";
//parse()解析source="1983-11-22 20:30:00"转化成Tue Nov 22 20:30:00 CST 1983
try {
Date parse = dateFormat.parse(source);
System.out.println(parse);
} catch (ParseException e) {
e.printStackTrace();
}
}
Tue Nov 22 20:30:00 CST 1983
6、将当前时间提前一个小时输出
@Test
public void test04(){
//该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
long timeMillis = System.currentTimeMillis();
timeMillis -=1000*60*60;
Date date = new Date(timeMillis);
System.out.println(date);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
String format = dateFormat.format(date);
System.out.println(format);
}
Thu Apr 14 17:09:58 CST 2022
2022-04-14 17:09:58