JAVA中toLocalleString,java8新特性Java 8 – How to convert String to LocalDate - Java教程

Few Java examples show you how to convert a String to the new Java 8 Date API – java.time.LocalDate

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/MM/yyyy");

String date = "16/08/2016";

//convert String to LocalDate

LocalDate localDate = LocalDate.parse(date, formatter);

Note

Refer to this official DateTimeFormatter JavaDoc for more date time formatter examples.

Note

You may interest at this classic java.util.Date example – How to convert String to Date in Java

1. String = 2016-08-16

If the String is formatted like ISO_LOCAL_DATE, you can parse the String directly, no need conversion.

TestNewDate1.java

package com.mkyong.java8.date;

import java.time.LocalDate;

public class TestNewDate1 {

public static void main(String[] argv) {

String date = "2016-08-16";

//default, ISO_LOCAL_DATE

LocalDate localDate = LocalDate.parse(date);

System.out.println(localDate);

}

}

Output

2016-08-16

2. String = 16-Aug-2016

TestNewDate2.java

package com.mkyong.java8.date;

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

public class TestNewDate2 {

public static void main(String[] argv) {

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yyyy");

String date = "16-Aug-2016";

LocalDate localDate = LocalDate.parse(date, formatter);

System.out.println(localDate); //default, print ISO_LOCAL_DATE

System.out.println(formatter.format(localDate));

}

}

Output

2016-08-16

16-Aug-2016

3. String = 16/08/2016

TestNewDate3.java

package com.mkyong.java8.date;

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

public class TestNewDate3 {

public static void main(String[] argv) {

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/MM/yyyy");

String date = "16/08/2016";

LocalDate localDate = LocalDate.parse(date, formatter);

System.out.println(localDate);

System.out.println(formatter.format(localDate));

}

}

Output

2016-08-16

16/08/2016

4. String = Tue, Aug 16 2016

TestNewDate4.java

package com.mkyong.java8.date;

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

public class TestNewDate4 {

public static void main(String[] argv) {

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, MMM d yyyy");

String date = "Tue, Aug 16 2016";

LocalDate localDate = LocalDate.parse(date, formatter);

System.out.println(localDate);

System.out.println(formatter.format(localDate));

}

}

Output

2016-08-16

Tue, Aug 16 2016

5. String = Tuesday, Aug 16, 2016 12:10:56 PM

This example convert a String to java.time.LocalDateTime

TestNewDate5.java

package com.mkyong.java8.date;

package com.mkyong.pageview;

import java.time.LocalDateTime;

import java.time.format.DateTimeFormatter;

public class TestNewDate5 {

public static void main(String[] argv) {

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, MMM d, yyyy HH:mm:ss a");

String date = "Tuesday, Aug 16, 2016 12:10:56 PM";

LocalDateTime localDateTime = LocalDateTime.parse(date, formatter);

System.out.println(localDateTime);

System.out.println(formatter.format(localDateTime));

}

}

Output

2016-08-16T12:10:56

Tuesday, Aug 16, 2016 12:10:56 PM

6. String = 2016-08-16T15:23:01Z

The ‘Z’ suffix means UTC, you can convert into a java.time.instant directly, then display it with a time zone.

TestNewDate6.java

package com.mkyong.java8.date;

import java.time.*;

public class TestNewDate6 {

public static void main(String[] argv) {

String dateInString = "2016-08-16T15:23:01Z";

Instant instant = Instant.parse(dateInString);

System.out.println("Instant : " + instant);

//get date time only

LocalDateTime result = LocalDateTime.ofInstant(instant, ZoneId.of(ZoneOffset.UTC.getId()));

//get localdate

System.out.println("LocalDate : " + result.toLocalDate());

//get date time + timezone

ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("Asia/Tokyo"));

System.out.println(zonedDateTime);

//get date time + timezone

ZonedDateTime zonedDateTime2 = instant.atZone(ZoneId.of("Europe/Athens"));

System.out.println(zonedDateTime2);

}

}

Output

Instant : 2016-08-16T15:23:01Z

LocalDate : 2016-08-16

2016-08-17T00:23:01+09:00[Asia/Tokyo]

2016-08-16T18:23:01+03:00[Europe/Athens]

7. String = 2016-08-16T10:15:30+08:00

String -> ZonedDateTime -> LocalDate

TestNewDate7.java

package com.mkyong.java8.date;

import java.time.*;

import java.time.format.DateTimeFormatter;

public class TestNewDate7 {

public static void main(String[] argv) {

String date = "2016-08-16T10:15:30+08:00";

ZonedDateTime result = ZonedDateTime.parse(date, DateTimeFormatter.ISO_DATE_TIME);

System.out.println("ZonedDateTime : " + result);

System.out.println("TimeZone : " + result.getZone());

LocalDate localDate = result.toLocalDate();

System.out.println("LocalDate : " + localDate);

}

}

Output

ZonedDateTime : 2016-08-16T10:15:30+08:00

TimeZone : +08:00

LocalDate : 2016-08-16

References

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值