Sentry Answers>Java>

How Do I Convert a String to a Date in Java?

How Do I Convert a String to a Date in Java?

Abdul D.

The Problem

You don’t know how to convert a String to a Date in Java.

The Solution

The recommended way to convert a String to a Date in Java is to use the DateTimeFormatter class from java.time. The DateTimeFormatter class is thread-safe, making it a better choice for multithreaded environments.

However, DateTimeFormatter requires Java version 8 or later. For older Java versions, you can use the SimpleDateFormat class from the java.text package.

Using DateTimeFormatter

Here’s an example that demonstrates how to convert a String to a LocalDate using the DateTimeFormatter class:

Click to Copy
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String dateString = "2024-10-09"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse(dateString, formatter); System.out.println(date); } }

This generates the following output:

Click to Copy
2024-10-09

Using SimpleDateFormat

Here’s an example that demonstrates how to convert a String to a Date using the SimpleDateFormat class:

Click to Copy
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; class Main { public static void main(String[] args) { String dateString = "2024-10-09"; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = formatter.parse(dateString); System.out.println("Converted Date: " + date); } catch (ParseException e) { System.out.println("Invalid date format"); } } }

This generates the following output:

Click to Copy
Converted Date: Mon Oct 09 00:00:00 UTC 2024

In this example, SimpleDateFormat is used to define the format of the input string (yyyy-MM-dd). The parse() method attempts to convert the string into a Date object. If the input string doesn’t match the expected format, a ParseException is thrown.

Note: The SimpleDateFormat class is not thread-safe, so you should avoid sharing instances across multiple threads.

Choosing a Date Format

The SimpleDateFormat and DateTimeFormatter classes allow you to define custom date formats, such as:

  • dd/MM/yyyy for dates like 09/10/2024
  • MM-dd-yyyy HH:mm:ss for dates with times, like 10-09-2024 14:00:00

Ensure the format you provide matches the input string to avoid ParseException errors.

The table below provides an overview of the available format pattern symbols for the DateTimeFormatter class:

SymbolMeaningPresentationExamples
GeratextAD; Anno Domini; A
uyearyear2004; 04
yyear-of-erayear2004; 04
Dday-of-yearnumber189
M/Lmonth-of-yearnumber/text7; 07; Jul; July; J
dday-of-monthnumber10
Q/qquarter-of-yearnumber/text3; 03; Q3; 3rd quarter
Yweek-based-yearyear1996; 96
wweek-of-week-based-yearnumber27
Wweek-of-monthnumber4
Eday-of-weektextTue; Tuesday; T
e/clocalized day-of-weeknumber/text2; 02; Tue; Tuesday; T
Fweek-of-monthnumber3
aam-pm-of-daytextPM
hclock-hour-of-am-pm (1-12)number12
Khour-of-am-pm (0-11)number0
kclock-hour-of-am-pm (1-24)number0
Hhour-of-day (0-23)number0
mminute-of-hournumber30
ssecond-of-minutenumber55
Sfraction-of-secondfraction978
Amilli-of-daynumber1234
nnano-of-secondnumber987654321
Nnano-of-daynumber1234000000
Vtime-zone IDzone-idAmerica/Los_Angeles; Z; -08:30
ztime-zone namezone-namePacific Standard Time; PST
Olocalized zone-offsetoffset-OGMT+8; GMT+08:00; UTC-08:00;
Xzone-offset ‘Z’ for zerooffset-XZ; -08; -0830; -08:30; -083015; -08:30:15;
xzone-offsetoffset-x+0000; -08; -0830; -08:30; -083015; -08:30:15;
Zzone-offsetoffset-Z+0000; -0800; -08:00;
  • Sentry BlogException Handling in Java (with Real Examples)
  • Syntax.fmListen to the Syntax Podcast
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

© 2025 • Sentry is a registered Trademark of Functional Software, Inc.