欢迎访问宙启技术站
智能推送

Java日期函数:快速获取当前日期时间、格式化日期字符串

发布时间:2023-06-17 21:52:53

Java中提供了许多处理日期时间的函数和类,可以方便地操作日期格式转换、日期加减、日期比较等操作。本文介绍如何快速获取当前日期时间和格式化日期字符串。

一、快速获取当前日期时间

在Java中,可以使用java.util.Date和java.util.Calendar类获取当前日期时间。其中,java.util.Date类提供了如下方法获取当前日期时间:

1. getTime()方法:返回自1970-01-01 00:00:00 GMT以来此日期表示的毫秒数。

2. toString()方法:返回此日期的字符串表示形式。

使用示例:

import java.util.Date;
public class TestDate {
    public static void main(String[] args) {
        Date now = new Date();
        System.out.println(now.getTime());
        System.out.println(now.toString());
    }
}

输出结果:
1590065906733
Thu May 21 11:11:46 CST 2020

java.util.Calendar类提供了如下方法获取当前日期时间:

1. getInstance()方法:返回一个Calendar对象,其日历字段已由当前日期和时间初始化。

2. getTime()方法:返回此Calendar对象对应的时间值,即自1970-01-01 00:00:00 UTC以来的毫秒数。

3. getTimeInMillis()方法:返回此Calendar对象对应的时间值,即自1970-01-01 00:00:00 GMT以来的毫秒数。

4. get(int field)方法:返回指定日历字段的值,如Calendar.YEAR、Calendar.MONTH、Calendar.DATE等。

使用示例:

import java.util.Calendar;
public class TestCalendar {
    public static void main(String[] args) {
        Calendar now = Calendar.getInstance();
        System.out.println(now.getTime());
        System.out.println(now.getTimeInMillis());
        System.out.println(now.getTimeZone());
        System.out.println(now.get(Calendar.YEAR));
        System.out.println(now.get(Calendar.MONTH) + 1);
        System.out.println(now.get(Calendar.DATE));
    }
}

输出结果:
Thu May 21 11:09:20 CST 2020
1590065360930
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
2020
5
21

二、格式化日期字符串

1. SimpleDateFormat类

在Java中,可以使用SimpleDateFormat类格式化日期字符串。SimpleDateFormat类提供了如下方法:

1. format(Date date)方法:将日期格式化为指定格式的字符串。

2. parse(String str)方法:将字符串解析为日期。

SimpleDateFormat类中的日期格式符号:

y——年;

M——月;

d——日;

H——时(24小时制);

h——时(12小时制);

m——分;

s——秒;

S——毫秒。

使用示例:

import java.text.SimpleDateFormat;
import java.util.Date;
public class TestSimpleDateFormat {
    public static void main(String[] args) throws Exception {
        Date now = new Date();
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        System.out.println(sdf1.format(now));
        System.out.println(sdf2.format(now));

        String str1 = "2020-05-21 11:23:34";
        String str2 = "2020年05月21日 11时23分34秒";
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        System.out.println(sdf3.parse(str1));
        System.out.println(sdf4.parse(str2));
    }
}

输出结果:
2020-05-21 11:23:34
2020年05月21日 11时23分34秒
Thu May 21 11:23:34 CST 2020
Thu May 21 11:23:34 CST 2020

2. DateTimeFormatter类

Java 8中,可以使用DateTimeFormatter类格式化日期字符串。DateTimeFormatter类提供了如下方法:

1. format(TemporalAccessor temporal)方法:将日期格式化为指定格式的字符串。

2. parse(CharSequence text)方法:将字符串解析为日期。

DateTimeFormatter类中的日期格式符号:

y——年;

M——月;

d——日;

H——时(24小时制);

h——时(12小时制);

m——分;

s——秒;

S——毫秒。

使用示例:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class TestDateTimeFormatter {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
        System.out.println(dtf1.format(now));
        System.out.println(dtf2.format(now));

        String str1 = "2020-05-21 11:23:34";
        String str2 = "2020年05月21日 11时23分34秒";
        DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        DateTimeFormatter dtf4 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
        System.out.println(LocalDateTime.parse(str1, dtf3));
        System.out.println(LocalDateTime.parse(str2, dtf4));
    }
}

输出结果:
2020-05-21 11:23:34
2020年05月21日 11时23分34秒
2020-05-21T11:23:34
2020-05-21T11:23:34

感谢您的阅读,希望对您有所帮助!