Java常用类(6)----获取时间类
java.text.SimpleDateFormat类
- Date类的API不易于国际化,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类
- 它允许进行 格式化:日期->文本、 解析:文本->日期
- 格式化(日期转化为字符串):
- SimpleDateFormat():默认的模式和语言环境创建对象
- public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用
- public String format(Date date):方法格式化时间对象date
- 解析(格式化的逆过程):
- public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期
- 代码测试
public class DateTimeTest2 {
@Test
public void testSimpleDateFormat(){
SimpleDateFormat sdf = new SimpleDateFormat();
Date date = new Date();
System.out.println(date);
String format = sdf.format(date);
System.out.println(format);
String str1="22-1-26 下午9:37";
Date date1 = sdf.parse(str1);
System.out.println(date1);
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date2 = sdf1.format(date);
System.out.println(date2);
}
}
解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),否则,抛异常
- 字符串“2020-09-08”转换为java.sql.Date
public void testExer() throws ParseException {
String birth="2020-09-08";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf1.parse(birth);
System.out.println(date);
java.sql.Date birthDate=new java.sql.Date(date.getTime());
System.out.println(birthDate);
}
java.util.Calendar类
- Calendar是一个抽象基类,主要用于完成日期字段之间相互操作的功能
- 获取Calendar实例的方法
- 使用Calendar.getInstance()方法
- 调用它的子类GregorianCalendar的构造器
- 一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。
- 注意:
- 获取月份时:一月是0,二月是1,以此类推,12月是11
- 获取星期时:周日是1,周二是2,。。。周六是7
- 常用方法:
- get()
- set()
- getTime()
- setTime()
- 代码测试
public class DateTimeCalendar {
@Test
public void CalendarTest(){
Calendar calendar = Calendar.getInstance();
int days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
calendar.set(Calendar.DAY_OF_MONTH,22);
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
calendar.add(Calendar.DAY_OF_MONTH,3);
int day2 = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(day2);
Date date = calendar.getTime();
System.out.println(date);
Date date1 = new Date();
calendar.setTime(date1);
int day3 = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(day3);
}
}
- 说明:
? jdk8之前的日期时间的API测试
- 1.System类中currentTimeMillis();
- 2.java.util.Date和子类java.sql.Date
- 3.SimpleDateFormat
- 4.Calendar
Jdk8:java.time
- Java8吸收了Joda-Time的精华,以一个新的开始为Java创建优秀的API。新的java.time中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZoneDateTime)和持续时间(Duration)的类
- 三个类的使用
- LocalDate
- LocalTime
- LocalDateTime(相较于其他两个,使用频率要高)
- 实例化:
now()
of()
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime now = LocalDateTime.now();
System.out.println(localDate);
System.out.println(localTime);
System.out.println(now);
LocalDateTime localDateTime = LocalDateTime.of(2022, 1, 27, 22, 44, 45);
System.out.println(localDateTime);
-
方法的使用 1)getXXX():获取一些属性
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getDayOfWeek());
System.out.println(localDateTime.getDayOfYear());
System.out.println(localDateTime.getMonthValue());
?
-
withXXX():设置一些属性
LocalDate localDate1 = localDate.withDayOfMonth(22);
System.out.println(localDate);
System.out.println(localDate1);
3)plusxxx(),minusxxx():增加减少 /plusxxx(),minusxxx():增加减少
LocalDateTime localDateTime1 = localDateTime.plusDays(3);
System.out.println(localDateTime);
System.out.println(localDateTime1);
LocalDateTime localDateTime2 = localDateTime.minusDays(7);
System.out.println(localDateTime2);
?
|