国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java String、Date、Calendar、LocalDate和LocalDateTime互轉(zhuǎn)

這篇具有很好參考價(jià)值的文章主要介紹了Java String、Date、Calendar、LocalDate和LocalDateTime互轉(zhuǎn)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、String和Date互轉(zhuǎn)

1.1 String時(shí)間轉(zhuǎn)為Date

1.2 Date轉(zhuǎn)為String

二、String和Calendar互轉(zhuǎn)

2.1 String時(shí)間轉(zhuǎn)為Calendar

2.2 Calendar轉(zhuǎn)為String

三、String和LocalDate(LocalDateTime)互轉(zhuǎn)

3.1 String時(shí)間轉(zhuǎn)為LocalDate(LocalDateTime)

3.2 LocalDate(LocalDateTime)轉(zhuǎn)為String

四、Date和Calendar互轉(zhuǎn)

4.1 Date轉(zhuǎn)為Calendar

4.2 Calendar轉(zhuǎn)為Date

五、Date和LocalDate(LocalDateTime)互轉(zhuǎn)

5.1 Date轉(zhuǎn)為LocalDate(LocalDateTime)

5.2 LocalDate(LocalDateTime)轉(zhuǎn)為Date

六、Calendar和LocalDat(LocalDateTime)互轉(zhuǎn)

6.1 Calendar轉(zhuǎn)為LocalDate(LocalDateTime)

6.2 LocalDat(LocalDateTime)轉(zhuǎn)為Calendar

七、LocalDate和LocalDateTime互轉(zhuǎn)

7.1 LocalDate轉(zhuǎn)LocalDateTime

7.2 LocalDateTime轉(zhuǎn)LocalDate


一、String和Date互轉(zhuǎn)

1.1 String時(shí)間轉(zhuǎn)為Date
private Date stringToDate(String dateStr, String pattern) {
    try {
        return new SimpleDateFormat(pattern).parse(dateStr);
    } catch (Throwable ignore) {
        // TODO 時(shí)間轉(zhuǎn)換異常日期
    }
    return null;
}

調(diào)方法 stringToDate(Sring, pattern):

System.out.println(stringToDate("2023-11", "yyyy-MM"));
System.out.println(stringToDate("2023-11-11", "yyyy-MM-dd"));
System.out.println(stringToDate("2023-11-11 11", "yyyy-MM-dd hh"));
System.out.println(stringToDate("2023-11-11 11:11", "yyyy-MM-dd hh:mm"));
System.out.println(stringToDate("2023-11-11 11:11:11", "yyyy-MM-dd hh:mm:ss"));

注:第一個(gè)參數(shù)的格式必須與第二個(gè)參數(shù)的模式一致才能正常轉(zhuǎn)換

運(yùn)行結(jié)果:

Wed Nov 01 00:00:00 CST 2023
Sat Nov 11 00:00:00 CST 2023
Sat Nov 11 11:00:00 CST 2023
Sat Nov 11 11:11:00 CST 2023
Sat Nov 11 11:11:11 CST 2023
1.2 Date轉(zhuǎn)為String
private String dateToString(Date date, String pattern) {
    return new SimpleDateFormat(pattern).format(date);
}

調(diào)方法dateToString(Date, pattern),可根據(jù)第二個(gè)參數(shù)模式來獲取對應(yīng)模式的時(shí)間對應(yīng)字符串格式:

System.out.println(dateToString(new Date(), "yyyy"));
System.out.println(dateToString(new Date(), "yyyy-MM"));
System.out.println(dateToString(new Date(), "yyyy-MM-dd"));
System.out.println(dateToString(new Date(), "yyyy-MM-dd hh"));
System.out.println(dateToString(new Date(), "yyyy-MM-dd hh:mm"));
System.out.println(dateToString(new Date(), "yyyy-MM-dd hh:mm:ss"));

運(yùn)行結(jié)果:

2023
2023-08
2023-08-01
2023-08-01 11
2023-08-01 11:40
2023-08-01 11:40:26

二、String和Calendar互轉(zhuǎn)

2.1 String時(shí)間轉(zhuǎn)為Calendar
private Calendar stringToCalendar(String dateStr, String pattern) {
    try {
        SimpleDateFormat sdf= new SimpleDateFormat(pattern);
        Date date = sdf.parse(dateStr);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);

        return calendar;
    } catch (Throwable ignore) {
        // TODO 時(shí)間字符串轉(zhuǎn)Calendar異常
    }
    return null;
}

調(diào)用方法stringToCalendar(String, pattern):

Calendar calendar0 = stringToCalendar("2023-08-05", "yyyy");
Calendar calendar1 = stringToCalendar("2023-08-05", "yyyy-MM");
Calendar calendar2 = stringToCalendar("2023-08-05 11:11:11", "yyyy-MM-dd hh:mm:ss");

System.out.println(calendar0.getTime());
System.out.println(calendar1.getTime());
System.out.println(calendar2.getTime());

注:第一個(gè)參數(shù)的格式與第二個(gè)參數(shù)的模式不一定要求強(qiáng)一致,但若String只有年月日,模式不能有時(shí)分秒

運(yùn)行結(jié)果:

Sun Jan 01 00:00:00 CST 2023
Tue Aug 01 00:00:00 CST 2023
Sat Aug 05 11:11:11 CST 2023

說明:根據(jù)日期模式格式化時(shí)間對象時(shí),若模式只有年月則日為1號,若模式?jīng)]有年份則月日為01月01日,模式?jīng)]有時(shí)/分/秒 則為0

2.2 Calendar轉(zhuǎn)為String
private String calendarToString(Calendar calendar, final String pattern) {

    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    return sdf.format(calendar.getTime());
}

調(diào)用方法calendarToString(Calendar, pattern),第二個(gè)參數(shù)為輸出的格式模式:

System.out.println(calendarToString(Calendar.getInstance(), "yyyy-MM"));
System.out.println(calendarToString(Calendar.getInstance(), "yyyy-MM-dd"));
System.out.println(calendarToString(Calendar.getInstance(), "yyyy-MM-dd hh"));
System.out.println(calendarToString(Calendar.getInstance(), "yyyy-MM-dd hh:mm"));
System.out.println(calendarToString(Calendar.getInstance(), "yyyy-MM-dd hh:mm:ss"));

運(yùn)行結(jié)果:

2023-08
2023-08-01
2023-08-01 11
2023-08-01 11:59
2023-08-01 11:59:13

三、String和LocalDate(LocalDateTime)互轉(zhuǎn)

3.1 String時(shí)間轉(zhuǎn)為LocalDate(LocalDateTime)
private LocalDate stringToLocalDate(String dateStr, String pattern) {

    DateTimeFormatter df = DateTimeFormatter.ofPattern(pattern);
    return LocalDate.parse(dateStr, df);
}

private LocalDateTime stringToLocalDateTime(String dateStr, String pattern) {

    DateTimeFormatter df = DateTimeFormatter.ofPattern(pattern);
    return LocalDateTime.parse(dateStr, df);
}

調(diào)方法 stringToLocalDate(Sring, pattern),第二個(gè)參數(shù)模式必須有年月日,第一個(gè)參數(shù)的格式必須與第二個(gè)參數(shù)的模式一致才能正常轉(zhuǎn)換

System.out.println(stringToLocalDate("2023-08-01", "yyyy-MM-dd"));
System.out.println(stringToLocalDate("2023-08-02 11", "yyyy-MM-dd hh"));
System.out.println(stringToLocalDate("2023-08-02 11:12", "yyyy-MM-dd hh:mm"));
System.out.println(stringToLocalDate("2023-08-02 11:12:13", "yyyy-MM-dd hh:mm:ss"));

System.out.println(stringToLocalDateTime("2023-08-02 11:12:13", "yyyy-MM-dd hh:mm:ss"));

運(yùn)行結(jié)果:

2023-08-01
2023-08-02
2023-08-02
2023-08-02

java.time.format.DateTimeParseException: Text '2023-08-02 11:12:13' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {MinuteOfHour=12, SecondOfMinute=13, MilliOfSecond=0, MicroOfSecond=0, HourOfAmPm=11, NanoOfSecond=0},ISO resolved to 2023-08-02 of type java.time.format.Parsed

注:報(bào)錯(cuò)的原因是stringToLocalDateTime方法第二個(gè)參數(shù)模式的小時(shí)hh 采用12小時(shí),反解析時(shí)不知道上午還是下午,改成24小時(shí)制“yyyy-MM-dd?HH:mm:ss”即可。

3.2 LocalDate(LocalDateTime)轉(zhuǎn)為String
private String localDateToString(LocalDate localDate, String pattern) {

    return localDate.format(DateTimeFormatter.ofPattern(pattern));
}

private String localDateToString(LocalDateTime localDateTime, String pattern) {

    return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}

只需要年月日用LocalDate,若需要時(shí)分秒用LocalDateTime

調(diào)方法localDateToString:

System.out.println(localDateToString(LocalDate.now(), "yyyy"));
System.out.println(localDateToString(LocalDate.now(), "yyyy-MM"));
System.out.println(localDateToString(LocalDate.now(), "yyyy-MM-dd"));
System.out.println(localDateToString(LocalDateTime.now(), "yyyy-MM-dd HH"));
System.out.println(localDateToString(LocalDateTime.now(), "yyyy-MM-dd HH:mm"));
System.out.println(localDateToString(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss"));

運(yùn)行結(jié)果:

2023
2023-08
2023-08-01
2023-08-01 12
2023-08-01 12:03
2023-08-01 12:03:44

四、Date和Calendar互轉(zhuǎn)

4.1 Date轉(zhuǎn)為Calendar
private Calendar dateToCalendar(Date date) {

    Calendar cal = Calendar.getInstance();
    cal.setTime(date );

    return cal;
}

調(diào)方法dateToCalendar(Date):

Calendar calendar = dateToCalendar(new Date());
System.out.println(calendar.getTime());

運(yùn)行結(jié)果:

Tue Aug 01 12:08:41 CST 2023
4.2 Calendar轉(zhuǎn)為Date
private Date calendarToDate(Calendar calendar) {

    return calendar.getTime();
}

調(diào)方法calendarToDate(Calendar):

System.out.println(calendarToDate(Calendar.getInstance()));

運(yùn)行結(jié)果:

Tue Aug 01 12:10:21 CST 2023

五、Date和LocalDate(LocalDateTime)互轉(zhuǎn)

5.1 Date轉(zhuǎn)為LocalDate(LocalDateTime)
private LocalDate dateToLocalDate(Date date) {

    // 將java.util.Date轉(zhuǎn)換為ZonedDateTime。
    Instant instant = date.toInstant();
    ZoneId zoneId = ZoneId.systemDefault();
    ZonedDateTime zonedDateTime = instant.atZone(zoneId);
    // 使用它的toLocalDate()方法從ZonedDateTime獲取LocalDate

    return zonedDateTime.toLocalDate();
}

private LocalDateTime dateToLocalDateTime(Date date) {

    // 將Date對象轉(zhuǎn)換成為Instant對象
    Instant instant = date.toInstant();
    // 將瞬時(shí)對象轉(zhuǎn)換成為LocalDateTime對象
    return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
}

調(diào)dateToLocalDate(Date),轉(zhuǎn)LocalDateTime調(diào)dateToLocalDateTime(Date):

System.out.println(dateToLocalDate(new Date()));
System.out.println(dateToLocalDateTime(new Date()));

運(yùn)行結(jié)果:

2023-08-01
2023-08-01T12:22:39.742
5.2 LocalDate(LocalDateTime)轉(zhuǎn)為Date
private Date localDateToDate(LocalDate localDate) {
    ZoneId zoneId = ZoneId.systemDefault();
    ZonedDateTime zonedDateTime = localDate.atStartOfDay(zoneId);
    // 將時(shí)區(qū)對象轉(zhuǎn)換成為瞬時(shí)對象
    Instant instant2 = zonedDateTime.toInstant();
    // 通過Date提供的靜態(tài)方法將瞬時(shí)對象轉(zhuǎn)換為Date對象
    return Date.from(instant2);
}

private Date localDateTimeToDate(LocalDateTime localDateTime) {

    // 將LocalDateTime對象轉(zhuǎn)換成為時(shí)區(qū)對象
    ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
    // 將時(shí)區(qū)對象轉(zhuǎn)換成為瞬時(shí)對象
    Instant instant2 = zonedDateTime.toInstant();
    // 通過Date提供的靜態(tài)方法將瞬時(shí)對象轉(zhuǎn)換為Date對象
    return Date.from(instant2);
}

LocalDateTime調(diào)localDateTimeToDate(LocalDateTime ),LocalDate調(diào)localDateToDate(LocalDate ):

System.out.println(localDateToDate(LocalDate.now()));
System.out.println(localDateTimeToDate(LocalDateTime.now()));

運(yùn)行結(jié)果:

Tue Aug 01 00:00:00 CST 2023
Tue Aug 01 12:25:06 CST 2023

六、Calendar和LocalDat(LocalDateTime)互轉(zhuǎn)

6.1 Calendar轉(zhuǎn)為LocalDate(LocalDateTime)

調(diào)4.2由Calendar轉(zhuǎn)為Date,再調(diào)5.1轉(zhuǎn)為LocalDate/LocalDateTime:

System.out.println(dateToLocalDate(calendarToDate(Calendar.getInstance())));
System.out.println(dateToLocalDateTime(calendarToDate(Calendar.getInstance())));

運(yùn)行結(jié)果:

2023-08-01
2023-08-01T12:33:01.151
6.2 LocalDat(LocalDateTime)轉(zhuǎn)為Calendar

調(diào)5.2由LocalDate轉(zhuǎn)為Date,再調(diào)4.1轉(zhuǎn)為Calendar:

Calendar calendar1 = dateToCalendar(localDateToDate(LocalDate.now()));
Calendar calendar2 = dateToCalendar(localDateTimeToDate(LocalDateTime.now()));

System.out.println(calendar1.getTime());
System.out.println(calendar2.getTime());

運(yùn)行結(jié)果:

Tue Aug 01 00:00:00 CST 2023
Tue Aug 01 12:35:47 CST 2023

七、LocalDate和LocalDateTime互轉(zhuǎn)

7.1 LocalDate轉(zhuǎn)LocalDateTime
private LocalDateTime localDateToLocalDateTime(LocalDate localDate) {
    return dateToLocalDateTime(localDateToDate(localDate));
}
7.2 LocalDateTime轉(zhuǎn)LocalDate
private LocalDate localDateTimeToLocalDate(LocalDateTime localDateTime) {
    return localDateTime.toLocalDate();
}

調(diào)7.1和7.2:

System.out.println(localDateToLocalDateTime(LocalDate.now()));
System.out.println(localDateTimeToLocalDate(LocalDateTime.now()));

運(yùn)行結(jié)果:

2023-08-01T00:00
2023-08-01

注:String為java.lang.String,Date為java.util.Date,Calendar為java.util.Calendar,LocalDate為java.time.LocalDate,LocalDateTime為java.time.LocalDateTime。文章來源地址http://www.zghlxwxcb.cn/news/detail-741501.html

到了這里,關(guān)于Java String、Date、Calendar、LocalDate和LocalDateTime互轉(zhuǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包