日期时间类

日期时间类

date类

  1. 创建Date对象

    • 可以通过将当前时间毫秒值传递给构造函数来创建Date对象。
    复制代码
    javalong currentTime = System.currentTimeMillis();
    Date currentDate = new Date(currentTime);
    
  2. 获取时间戳

    • Date对象的getTime()方法返回自1970年1月1日00:00:00 GMT以来的毫秒数。
  3. 设置和获取日期和时间

    • setYear(int year), getYear(), setMonth(int month), getMonth(), setDate(int date), getDate(), setHours(int hours), getHours(), 等等,用于设置和获取日期和时间的各个部分。
  4. 比较日期

    • before(Date when):测试当前Date对象是否在指定的Date对象之前。
    • after(Date when):测试当前Date对象是否在指定的Date对象之后。
    • equals(Object obj):测试当前Date对象是否与指定的Date对象相等。
  5. 格式化日期

    • 尽管Date类本身不提供格式化功能,但可以通过SimpleDateFormat类将Date对象格式化为易读的字符串。
  6. 克隆Date对象

    • clone():返回Date对象的一个副本。
  7. 时间操作

    • 可以通过加减毫秒值来修改Date对象表示的时间。

以下是Date类的一个简单使用示例:

复制代码
import java.util.Date;

public class DateExample {
    public static void main(String[] args) {
        // 创建一个新的Date对象,表示当前时间
        Date now = new Date();

        // 打印当前时间
        System.out.println("Current time: " + now);

        // 获取当前时间的毫秒值
        long millis = now.getTime();
        System.out.println("Milliseconds since epoch: " + millis);

        // 创建一个Date对象,表示特定的时间
        Date birthday = new Date(0); // 表示1970年1月1日00:00:00 GMT

        // 比较两个日期
        if (now.after(birthday)) {
            System.out.println("Current time is after the epoch.");
        }

        // 克隆Date对象
        Date clonedDate = (Date) now.clone();
        System.out.println("Cloned time: " + clonedDate);
    }
}

SimpleDateFormat类(格式化)

SimpleDateFormat是Java中用于日期和时间格式化和解析的类,位于java.text包中。它允许你以一种特定的方式来格式化Date对象或者解析字符串为Date对象。SimpleDateFormat是不可变的,这意味着一旦创建了一个实例,就不能更改其模式。

以下是SimpleDateFormat的一些关键用法:

  1. 创建SimpleDateFormat实例
    • 你需要提供一个日期和时间的模式字符串来创建SimpleDateFormat的实例。
  2. 格式化日期
    • 使用format(Date date)方法将Date对象格式化为字符串。
  3. 解析日期
    • 使用parse(String source)方法将字符串解析为Date对象。
  4. 设置和获取日期格式
    • applyPattern(String pattern)toPattern()方法用于设置和获取当前使用的日期时间模式。

以下是SimpleDateFormat类的一些常用模式字符:

  • y:年
  • M:月
  • d:日
  • H:小时(24小时制)
  • m:分钟
  • s:秒
  • S:毫秒
  • E:星期
  • D:一年中的第几天
  • F:一年中的第几周

以下是SimpleDateFormat的一个简单使用示例:

复制代码
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatExample {
    public static void main(String[] args) {
        // 创建Date对象
        Date currentDate = new Date();

        // 创建SimpleDateFormat实例,定义日期时间格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 格式化日期
        String formattedDate = dateFormat.format(currentDate);
        System.out.println("Formatted date: " + formattedDate);

        // 解析日期
        try {
            Date parsedDate = dateFormat.parse("2024-08-05 10:30:00");
            System.out.println("Parsed date: " + dateFormat.format(parsedDate));
        } catch (Exception e) {
            System.out.println("Error parsing date: " + e.getMessage());
        }
    }
}

Calendar(日历)

Java 中的 Calendar 类是 java.util 包的一部分,它是一个抽象类,提供了一种方法来操作日期和时间。Calendar 类提供了丰富的方法来添加或减去时间、字段之间的转换、以及获取或设置日期和时间的特定字段。

以下是 Calendar 类的一些关键用法:

  1. 获取Calendar实例
    • 使用 Calendar.getInstance() 方法来获取一个带有默认时区和语言环境的 Calendar 实例。
  2. 设置和获取日期和时间
    • 使用 set(int year, int month, int date, int hourOfDay, int minute, int second) 方法来设置日期和时间。
    • 使用 get(int field) 方法来获取日期和时间的特定字段,如年、月、日等。
  3. 字段常量
    • Calendar 类定义了一系列的字段常量,如 YEARMONTHDAY_OF_MONTHHOUR_OF_DAY 等,用于指定日期和时间的特定部分。
  4. 添加时间
    • 使用 add(int field, int amount) 方法来给指定的日历字段添加或减去指定的时间量。
  5. 比较日期
    • 使用 before(Object when)after(Object when) 方法来比较两个日期。
  6. 清除和复位
    • 使用 clear() 方法来将 Calendar 实例的所有字段复位为默认值。
    • 使用 reset() 方法来清除当前字段的值。
  7. 时间计算
    • 可以对 Calendar 实例进行算术运算,如增加或减少天数或月份。

以下是 Calendar 类的一个简单使用示例:

复制代码
import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        // 获取Calendar实例
        Calendar calendar = Calendar.getInstance();

        // 获取当前日期和时间的各个字段
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH); // 注意:月份是从0开始的,0表示一月
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);

        System.out.println("Current date and time: ");
        System.out.println("Year: " + year);
        System.out.println("Month: " + (month + 1)); // 月份从1开始显示
        System.out.println("Day: " + day);
        System.out.println("Hour: " + hour);
        System.out.println("Minute: " + minute);
        System.out.println("Second: " + second);

        // 设置日期和时间
        calendar.set(2024, Calendar.AUGUST, 5, 10, 30, 0);

        // 添加时间
        calendar.add(Calendar.DATE, 10); // 添加10天

        // 打印更新后的日期
        System.out.println("Updated date after adding 10 days: ");
        System.out.println("Year: " + calendar.get(Calendar.YEAR));
        System.out.println("Month: " + (calendar.get(Calendar.MONTH) + 1));
        System.out.println("Day: " + calendar.get(Calendar.DAY_OF_MONTH));
    }
}

作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   糊涂图-4060  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示