时间在我们的生活中可以说是处处可见,在开发的过程中也是非常的常见的。在程序中,日期的存储可以是数字,也可以是长整型的数字。0代表的就是1970年1月1日 00:00:00,而我们中国是处于东八区,所以为1970年1月1日 08:00:00,往前推负数表示之前的时间,整数就是表示之后的时间。
在日常中我们表示的时间是使用字符串的表示,如****年**月**日 时:分:秒的格式,因此为了能够把相应的长整型数据转换为我们想要的字符串,我们应该了解时间处理的一些知识。
在标准的Java类库中包含了Date类。它的对象表示一个特定的瞬间,精确到毫秒。
Date分配一个Date对象,并初始化此对象为当前的日期和对象精确到毫秒。
Date分配对象初始化此对象,以表示自从标准基准时间以来指定毫秒数。
相关类
类 | 常见方法 |
---|---|
System 系统类 | currentTimeMillis():当前时间 |
Date 日期类 | new Date():当前时间 new Date(指定时间):指定时间 getTime():获取时间 setTime(指定时间):设置指定时间 |
SimpleDateFormat 格式器 | new SimpleDateFormat(模板) format():格式化为字符串 parse():转成时期 |
public static void main(String[] args) {
long x =System.currentTimeMillis();//当前时间的相对毫秒数
Date date = new Date();
String time = (date.getYear()+1900)+"-"//获取时间的年份
+(date.getMonth()+1)+"-"//获取时间的月份
+date.getDay()+" "//获取时间的天数
+date.getHours()+":"//获取时间的小时
+date.getMinutes()+":"//获取时间的分钟
+date.getSeconds();
System.out.println(time);
System.out.println("今天是周"+date.getDay());//星期几
Date date1 = new Date(x);
System.out.println(date1);
}
日期的格式化类SimpleDateFormat
存储指定的时间|日期到Date对象中
指定字符串--->Date;
Date对象--->写成满足指定格式的字符串;
- Text:对于格式化,如果模式字母的数量是4以上,则使用完整的形式; 否则,如果有的话,使用简短或缩写形式。 对于解析,两种形式都是接受的,与模式字母的数量无关。
- Number:对于格式化,模式字母的数量是最小位数,而较短的数字将零填充到此数量。 对于解析,模式字母的数量将被忽略,除非需要分隔两个相邻的字段。
-
Year:如果格式化程序的Calendar是公历,则应用以下规则。
-
对于格式化,如果模式字母数字为2,那么年份将被阶段为2位数;否则被解释为number。
-
对于解析,如果模式字母的数量大于2,则年份将按字面解释,而不管数字的数量。所以使用“MM/dd/yyyy”模式“01/11/12”解析到公元12年1月11日
-
为了使用缩写年份模式(“y或yy”)进行解析,SimpleDateFormat必须解释相对于某个世纪的缩写年份。它是通过将日期调整为在创建
否则,将应用日历系统特定的表单。 对于格式化和解析两者,如果模式字母数为4以上,则使用特定日历long form。 否则,使用一个特定日历short or abbreviated form。SimpleDateFormat
实例之后的80年之前和20年之后进行的。 例如,使用1997年1月1日创建的“MM / dd / yy”模式和SimpleDateFormat
实例,字符串“01/11/12”将被解释为2012年1月11日,而字符串“05/04 / 64“将被解释为1964年5月4日。在解析期间,只有由Character.isDigit (char)定义的两个数字组成的字符串将被解析为默认世纪。 任何其他数字字符串,例如一位数字字符串,三位或三位以上数字字符串,或两位数字字符串(不全部为数字)(例如“-1”),均按字面解释。 所以“01/02/3”或“01/02/003”的解析方式与公元3年1月2日相同。 同样,“01/02 / -3”在公元前4年1月2日被解析。
-
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 1.将制定的日期时间存储到Date
* 2.有一个日期时间在Date,希望能够以不同的形式去查看
*/
public class simpleDateFormat {
public static void main(String[] args) {
//将一个给定的字符串,转换成Date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
String str = "2021-01-01 8:00:00";
try {
Date date = simpleDateFormat.parse(str);
System.out.println(date);//Fri Jan 01 08:00:00 CST 2021
//Date对象 想要按照制定的格式查看
String time = simpleDateFormat.format(date);
System.out.println(time);//2021-01-01 08:00:00
} catch (ParseException e) {
e.printStackTrace();
}
}
}