Java API练习 (1) (2024.7.20)
Date类
package APIExercise20240720;
import java.util.Date;
// 导包,Date是util下的
public class Date20240720 {public static void main(String[] args) {Date nowTime = new Date(); // 得到当前系统时间System.out.println(nowTime);Date startTime = new Date(0); //得到计算机时间零点System.out.println(startTime);System.out.println(System.currentTimeMillis()); // 通过System的方法得到现在距离时间零点的msSystem.out.println(new Date(System.currentTimeMillis()));/* Date的无参构造其实是用的currentTimeMillis得到现在距离时间零点的ms,然后再用this调用有参构造从而无参构造就是得到当前系统的时间 */System.out.println(nowTime.getTime()); // 一个方法得到Date时间距离时间零点的msSystem.out.println(nowTime);nowTime.setTime(1721483401747L); // 根据传递的ms值,得到时间零点加上ms值的时间System.out.println(nowTime);}
}
SimpleDateFormat类
package APIExercise20240720;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;// SimpleDateFormat导包
public class DateFormat20240720 {public static void main(String[] args) throws ParseException {/* DateFormat是一个抽象类,不能直接创建对象,要用其子类simpleDateFormat */SimpleDateFormat normalFormat = new SimpleDateFormat();// 无参构造,使用默认的格式SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); // HH是24小时制,hh是12小时制// 有参构造,使用传递的格式// public String format(Date date):将Date对象格式化为字符串String nowTime = normalFormat.format(new Date()); // 用默认的格式得到时间的字符串System.out.println(nowTime);String formatNowTime = format.format(new Date()); // 用自己的格式得到时间的字符串System.out.println(formatNowTime);// public Date parse(String source):将字符串解析为Date对象,格式需要严格对应String timeNow = "2024年07月20日 21时30分26秒";Date dateTime = format.parse(timeNow); // 使用此方法要处理异常System.out.println(dateTime); // 成功解析}
}
Duration类
package APIExercise20240720;
import java.time.Duration;
import java.time.LocalDateTime;public class Duration20240720 {public static void main(String[] args) {LocalDateTime nowTime = LocalDateTime.now(); // 得到现在的时间LocalDateTime startTime = LocalDateTime.of(1970, 1 , 1, 0, 0, 0);// 得到当时的时间(时间零点),通过有参构造,传递年月日时分秒Duration longTime = Duration.between(startTime, nowTime); // 得到时间差,注意,参数是第二个减第一个(后减前)System.out.println(longTime);System.out.println(longTime.toDays()); // 定义时间差是longTime,那么可以调用toDays得到相差的天数System.out.println(longTime.toHours()); // 定义时间差是longTime,那么可以调用toHours得到相差的小时数System.out.println(longTime.toMinutes()); // 定义时间差是longTime,那么可以调用toMinutes得到相差的分钟数}
}
ChronoUnit类
package APIExercise20240720;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;public class ChronoUnit20240720 {public static void main(String[] args) {// 当前时间LocalDateTime today = LocalDateTime.now();System.out.println(today);// 生日时间LocalDateTime birthDate = LocalDateTime.of(2004, 10, 14,0, 0, 0);System.out.println(birthDate);// 这个类几乎和Duration、Period用法是一样的,只是ChronoUnit几乎涵盖了所有时间的单位System.out.println("相差的年数:" + ChronoUnit.YEARS.between(birthDate, today));System.out.println("相差的月数:" + ChronoUnit.MONTHS.between(birthDate, today));System.out.println("相差的周数:" + ChronoUnit.WEEKS.between(birthDate, today));System.out.println("相差的天数:" + ChronoUnit.DAYS.between(birthDate, today));System.out.println("相差的时数:" + ChronoUnit.HOURS.between(birthDate, today));System.out.println("相差的分数:" + ChronoUnit.MINUTES.between(birthDate, today));System.out.println("相差的秒数:" + ChronoUnit.SECONDS.between(birthDate, today));System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate, today));System.out.println("相差的微秒数:" + ChronoUnit.MICROS.between(birthDate, today));System.out.println("相差的纳秒数:" + ChronoUnit.NANOS.between(birthDate, today));System.out.println("相差的半天数:" + ChronoUnit.HALF_DAYS.between(birthDate, today));System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate, today));System.out.println("相差的世纪(百年)数:" + ChronoUnit.CENTURIES.between(birthDate, today));System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate, today));System.out.println("相差的纪元数:" + ChronoUnit.ERAS.between(birthDate, today));}
}
TimeExercise
package APIExercise20240720;
import java.text.ParseException;
import java.util.Date;
import java.text.SimpleDateFormat;
public class TimeExercise {public static void main(String[] args) throws ParseException {/*假设,你初恋的出生年月日为:2000-11-11请用字符串表示这个数据,并将其转换为:2000年11月11日创建一个Date对象表示2000年11月11日创建一个SimpleDateFormat对象,并定义格式为年月日把时间变成:2000年11月11日*/String bornTime = "2000-11-11";SimpleDateFormat formatBirthday = new SimpleDateFormat("yyyy-MM-dd");Date birthday = formatBirthday.parse(bornTime);System.out.println(birthday);SimpleDateFormat newFormat = new SimpleDateFormat("yyyy年MM月dd日");System.out.println(newFormat.format(birthday));}
}