在本文中,您将找到几个示例,演示如何在 Java 中将表示为 String 的日期转换为 Date、LocalDate、LocalDateTime、ZonedDateTime 或 LocalTime 实例。
日期通过使用一些模式和符号表示为字符串。 Java 的 SimpleDateFormat 类使用以下模式和符号将字符串解析为日期。
让我们看一个例子:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = "2020-01-31";
try {
// Parsing a String to Date
Date date = dateFormatter.parse(dateStr);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
这是我们解析更复杂的日期时间表示的另一个示例:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
SimpleDateFormat dateTimeFormatter = new SimpleDateFormat("E, MMM dd yyyy, hh:mm:ss a");
String dateTimeStr = "Fri, Jan 31 2020, 10:30:45 PM";
try {
// Parse the String representation of date and time to Date
Date date = dateTimeFormatter.parse(dateTimeStr);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
我们还可以使用 Java 8 中引入的 DateTime API 将 String 转换为各种 DateTime 类的实例,如 LocalDate、LocalTime、LocalDateTime、ZonedDateTime 等。
DateTime API 有一个 DateTimeFormatter 类,可用于定义日期时间格式并根据指定的日期时间格式解析 String。 DateTimeFormatter 类使用以下模式和符号:
让我们看一个将 String 解析为 LocalDate 的示例:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class LocalDateParseExample {
public static void main(String[] args) {
// Parse a String in ISO Date format (yyyy-MM-dd) to LocalDate
LocalDate date1 = LocalDate.parse("2020-02-28");
System.out.println(date1);
// Parse a String in a custom date format to LocalDate using DateTimeFormatter
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date2 = LocalDate.parse("28/02/2020", dateFormatter);
System.out.println(date2);
// Parse a String in a custom date-time format to LocalDate using DateTimeFormatter
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("E, MMM dd yyyy, hh:mm:ss a");
LocalDate date3 = LocalDate.parse("Fri, Feb 14 2020, 10:20:50 PM", dateTimeFormatter);
System.out.println(date3);
}
}
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeParseExample {
public static void main(String[] args) {
// Parse a String in ISO DateTime format (yyyy-MM-ddTHH:mm:ss) to LocalDateTime
LocalDateTime dateTime1 = LocalDateTime.parse("2020-01-31T10:15:30");
System.out.println(dateTime1);
// Parse a String in a custom date format to LocalDate using DateTimeFormatter
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MMM dd yyyy, HH:mm");
LocalDateTime dateTime2 = LocalDateTime.parse("Jan 11 2020, 10:30", dateTimeFormatter);
System.out.println(dateTime2);
// Parse a String in a custom DateTime format to LocalDateTime using DateTimeFormatter
DateTimeFormatter descriptiveDateTimeFormatter = DateTimeFormatter.ofPattern("E, MMM dd yyyy, hh:mm:ss a");
LocalDateTime dateTime3 = LocalDateTime.parse("Fri, Feb 14 2020, 10:20:50 PM", descriptiveDateTimeFormatter);
System.out.println(dateTime3);
}
}
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class LocalTimeParseExample {
public static void main(String[] args) {
// Parse a String in ISO Time format (HH:mm:ss) to LocalDate
LocalTime time1 = LocalTime.parse("12:30:50");
System.out.println(time1);
// Parse a String in a custom date format to LocalTime using DateTimeFormatter
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
LocalTime time2 = LocalTime.parse("28/02/2020 16:45:30", dateTimeFormatter);
System.out.println(time2);
}
}
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class ZonedDateTimeParseExample {
public static void main(String[] args) {
// Parse a String in ISO DateTime format to ZonedDateTime
ZonedDateTime dateTime1 = ZonedDateTime.parse("2020-01-31T10:15:30+01:00[Europe/Paris]");
System.out.println(dateTime1);
// Parse a String in a custom date time format to ZonedDateTime using DateTimeFormatter
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MMM dd yyyy, HH:mm (VV)");
ZonedDateTime dateTime2 = ZonedDateTime.parse("Jan 11 2020, 10:30 (America/Los_Angeles)", dateTimeFormatter);
System.out.println(dateTime2);
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.callicoder.com/how-to-convert-parse-string-to-date-java/
内容来源于网络,如有侵权,请联系作者删除!