Tuesday, 7 April 2015

Convert DateTime in Java using Joda Time.

How to convert String to Date in java using Joda Time ?

The below program converts the String-to-Date and Date-to-String using joda time library. Joda Time library is a 3rd party jar and its very easy and compact to use for such conversion. Download the joda jar from https://github.com/JodaOrg/joda-time/releases

Example :-

package jdevelopersguide.lab;

import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;

public class ConvertToDate {

/**
* @param args
*/
public static void main(String[] args) {
String date="2015-04-07";
DateTime jodaTimeDate=DateTimeFormat.forPattern("yyyy-mm-dd").parseDateTime(date);
System.out.println("Joda Time Date is::"+jodaTimeDate);

//Convert Joda DateTime to Java Date
Date javaDate=jodaTimeDate.toDate();
System.out.println("Converted Java Date is:::"+javaDate);

//Convert Java Date to String
String convertedDate=DateTimeFormat.forPattern("dd-mm-yyyy").print(javaDate.getTime());
System.out.println("Converted Java Date to String::::"+convertedDate);
}

}


Output :-


Joda Time Date is::2015-01-07T00:04:00.000+11:00
Converted Java Date is:::Wed Jan 07 00:04:00 EST 2015
Converted Java Date to String::::07-04-2015



The  Pattern is really very simple and you can use as per your requirements. There are many pattens are there as follows :-

The pattern syntax is mostly compatible with java.text.SimpleDateFormat - time zone names cannot be parsed and a few more symbols are supported. All ASCII letters are reserved as pattern letters, which are defined as follows:
 Symbol  Meaning                      Presentation  Examples
 ------  -------                      ------------  -------
 G       era                          text          AD
 C       century of era (>=0)         number        20
 Y       year of era (>=0)            year          1996

 x       weekyear                     year          1996
 w       week of weekyear             number        27
 e       day of week                  number        2
 E       day of week                  text          Tuesday; Tue

 y       year                         year          1996
 D       day of year                  number        189
 M       month of year                month         July; Jul; 07
 d       day of month                 number        10

 a       halfday of day               text          PM
 K       hour of halfday (0~11)       number        0
 h       clockhour of halfday (1~12)  number        12

 H       hour of day (0~23)           number        0
 k       clockhour of day (1~24)      number        24
 m       minute of hour               number        30
 s       second of minute             number        55
 S       fraction of second           number        978

 z       time zone                    text          Pacific Standard Time; PST
 Z       time zone offset/id          zone          -0800; -08:00; America/Los_Angeles

 '       escape for text              delimiter
 ''      single quote                 literal       '
 

You can find more details in joda site