Java 时间笔记

1. 获取当前时间

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeTest {
    public static void main(String[] args) {
        DateTimeTest.getCurrentTime();
    }

    //12-17 14:02:34
    public static String getCurrentTime(){
        Date date = new Date();
        String strTime;

        DateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm:ss");
        strTime = dateFormat.format(date);
        //System.out.println(strTime);

        return strTime;
    }
}

待续

Java中,时间处理主要涉及`java.util.Date`、`java.util.Calendar`、`java.time`包中的类(如`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等),以及`java.text.SimpleDateFormat`等类。以下是对这些类的详细介绍及其使用方法。 ### `java.util.Date` 类 `Date`类用于表示特定的瞬间,精确到毫秒。它提供了许多操作日期的方法,但大部分方法已经被标记为过时,推荐使用`Calendar`类进行更复杂的日期操作。 ```java import java.util.Date; public class DateExample { public static void main(String[] args) { // 创建一个表示当前时间的Date对象 Date currentDate = new Date(); System.out.println("当前时间:" + currentDate); // 获取时间戳 long timeInMillis = currentDate.getTime(); System.out.println("时间戳:" + timeInMillis); } } ``` ### `java.util.Calendar` 类 `Calendar`类是一个抽象类,提供了丰富的日期操作功能,如获取、设置、增加或减少日期字段等。通常使用`Calendar.getInstance()`来获取一个`Calendar`实例。 ```java import java.util.Calendar; public class CalendarExample { public static void main(String[] args) { // 获取Calendar实例 Calendar calendar = Calendar.getInstance(); // 获取当前年份 int year = calendar.get(Calendar.YEAR); System.out.println("当前年份:" + year); // 获取当前月份(0表示一月) int month = calendar.get(Calendar.MONTH) + 1; System.out.println("当前月份:" + month); // 获取当前日期 int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.println("当前日期:" + day); // 添加一天 calendar.add(Calendar.DAY_OF_MONTH, 1); System.out.println("明天的日期:" + calendar.getTime()); } } ``` ### `java.time` 包中的类 从Java 8开始,引入了`java.time`包,提供了更为现代化和易用的日期时间API。这些类包括`LocalDate`、`LocalTime`、`LocalDateTime`和`ZonedDateTime`等。 #### `LocalDate` 和 `LocalTime` `LocalDate`表示日期,不包含时间;`LocalTime`表示时间,不包含日期。 ```java import java.time.LocalDate; import java.time.LocalTime; public class LocalDateExample { public static void main(String[] args) { // 获取当前日期 LocalDate currentDate = LocalDate.now(); System.out.println("当前日期:" + currentDate); // 获取当前时间 LocalTime currentTime = LocalTime.now(); System.out.println("当前时间:" + currentTime); } } ``` #### `LocalDateTime` `LocalDateTime`结合了日期和时间,适用于不需要时区信息的场景。 ```java import java.time.LocalDateTime; public class LocalDateTimeExample { public static void main(String[] args) { // 获取当前日期和时间 LocalDateTime currentDateTime = LocalDateTime.now(); System.out.println("当前日期和时间:" + currentDateTime); } } ``` #### `ZonedDateTime` `ZonedDateTime`包含了时区信息,适用于需要处理不同时区的时间场景。 ```java import java.time.ZonedDateTime; import java.time.ZoneId; public class ZonedDateTimeExample { public static void main(String[] args) { // 获取带时区的当前时间 ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("Asia/Shanghai")); System.out.println("带时区的当前时间:" + zonedDateTime); } } ``` ### `java.text.SimpleDateFormat` 类 `SimpleDateFormat`类用于格式化和解析日期。它可以将日期对象转换为字符串,也可以将字符串解析为日期对象。 ```java import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatExample { public static void main(String[] args) throws Exception { // 创建日期格式化对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 将日期对象转换为字符串 Date date = new Date(); String formattedDate = sdf.format(date); System.out.println("格式化后的日期:" + formattedDate); // 将字符串解析为日期对象 String inputDate = "2023-10-01 12:00:00"; Date parsedDate = sdf.parse(inputDate); System.out.println("解析后的日期:" + parsedDate); } } ``` ### `java.time.format.DateTimeFormatter` 类 `DateTimeFormatter`是`java.time`包中用于格式化和解析日期时间的类,提供了线程安全的格式化方式。 ```java import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class DateTimeFormatterExample { public static void main(String[] args) { // 创建日期时间格式化对象 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 将日期时间对象转换为字符串 LocalDateTime dateTime = LocalDateTime.now(); String formattedDateTime = dateTime.format(formatter); System.out.println("格式化后的日期时间:" + formattedDateTime); // 将字符串解析为日期时间对象 String inputDateTime = "2023-10-01 12:00:00"; LocalDateTime parsedDateTime = LocalDateTime.parse(inputDateTime, formatter); System.out.println("解析后的日期时间:" + parsedDateTime); } } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值