Question

I am getting date in the format of YYYDD, and I want to convert it in YYYY-MM-DD, I tried several ways but no luck, any one has solution please suggest.

after searching on Google I got the below link, which has function to convert above data format but it is asking for two parameters one is input date string and second is number of days to add. any suggestion translateDateStr

Was it helpful?

Solution

Using SimpleDateFormat:

     SimpleDateFormat format1 = new SimpleDateFormat("yyDDD");
     SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");

     String oldDate = "12060";
     Date d = format1.parse(oldDate);
     String newDate = format2.format(d)

     System.out.println(newDate); 

would print out "2012-02-29"

OTHER TIPS

Using Joda Time

import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

String yyyddd_date= "00130";
DateTimeFormatter inputFormat = DateTimeFormat.forPattern("yyDDD");
DateTimeFormatter outputFormat = DateTimeFormat.forPattern("yyDDD");
String outputformatdatestring = LocalDate.parse(yyyddd_date, inputFormat).toString(outputFormat);

format codes (from http://joda-time.sourceforge.net/api-release/index.html)

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       '

use SimpleDateFormat:

SimpleDateFormat format = new SimpleDateFormat("yyDDD");
Date date = format.parse("12060", 0);

for storing the date in the format you want, you would do similar, just from the other direction...

http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top