Skip to content

Latest commit

 

History

History
executable file
·
91 lines (73 loc) · 3.29 KB

File metadata and controls

executable file
·
91 lines (73 loc) · 3.29 KB

Java中的时间与日期

1. Date类

java.util.Date 该类的每个实例用来描述时间(只能描述,不能操作),内部维护了一个long值,记录自1970年到这一刻之间的毫秒差

  • 构造方法

    产生的date结果形式为:Fri Nov 22 16:28:48 CST 2019

    • Date() 该构造器创建出来的对象默认表示当前的系统时间 Date date = new Date()
    • Date(long time) 创建一个Date对象描述给定毫秒值所表示的时间 Date date = new Date(System.currentTimeMillis())
  • 方法

    • long getTime(long time) 获取Date描述的时间距离1970年元旦的毫秒差 date.getTime(time)
    • void setTime() 使当前Date对象表示给定的毫秒值所描述的时间 date.setTime() 打印date结果形式为:Sat Nov 23 16:36:13 CST 2019

2. SimpleDateFormat类

使用一个特殊的字符串来描述一个时间格式,并使用该时间格式作为桥梁,在字符串和时间之间相互转换 Date<->String

  1. 时间格式字符串中的特殊字符

    • y:表示年 yyyyy:表示4位的年 yy:表示两位的年

    • M:表示月 MM:表示两位数的月

    • d:日 dd:表示两位数的日期

    • h:小时 12小时制

      H:小时 24小时制 hh/HH:两位数的小时

    • m:表示分钟 mm:表示两位数的分钟

    • s:表示秒 ss:表示两位数的秒

    • E:表示星期

    • a:表示上下午

  2. 在一个时间格式容器中出现的其他字符按照意愿显示

3. DateFormat类

该类是SimpleDateFormat的父类,可以根据给定的地区,将Date转换为字符串。 不同的地区对应的时间格式字符串是预定义的。 DateFormat类是一个抽象类,不能直接实例化,可以使用其提供的工厂方法:getInstance(style, aLocale) style:打印的时间样式,DateFormat提供了几个平行常量 aLocale:地区 DateFormat df = DateFormat.getInstance(style, cLocal);

4. Calendar类

用于操作时间的类,是一个抽象类,不能直接实例化。 可以使用其提供的工厂方法:getInstance(). 该方法会根据当前系统所在的地区自动判定用哪个子类来实现 Calendar calendar = Calendar.getInstance();

4.1 方法

  1. Date getTime();
    得到一个Date对象

  2. void setTime(Date date); 将当前的Calendar对象的时间设置为给定的时间

  3. int get(int field) field对应Calendar这个类中若干常量,每个常量表示一个不同的时间单位 例如: Calendar.YEAR,Calendar.MONTH Calendar.DATE(号数)等效于Calendar.DAY_OF_MONTH

  4. void set(int field, int value) 设置当前Calendar指定时间分量的值 filed:时间分量 value:要设置的值

    例如:将时间设置到2008年 calendar.set(Calendar.YEAR, 2008);

  5. void add(int field, int value) 将给定的时间分量累加给定的值 例如:5天后的日期 calendar.add(Calendar.DAY_OF_MONTH, 5);

4.2 String,Date,Calendar转换

String -> SimpelDateFormat.parse() -> Date Date -> Calendar.getInstance().setTime() -> Calendar Calendar -> Calendar.getTime() -> Date Date -> SimpleDateFormat.format() -> String