0

我正在以 的格式获取日期YYYDD,我想将其转换为YYYY-MM-DD,我尝试了几种方法但没有运气,任何人有解决方案请建议。

在谷歌上搜索后,我得到了下面的链接,它具有转换上述数据格式的功能,但它要求两个参数,一个是输入日期字符串,第二个是要添加的天数。任何建议 translateDateStr

4

3 回答 3

4

使用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); 

将打印出“2012-02-29”

于 2012-09-24T05:24:55.680 回答
2

使用乔达时间

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);

格式代码(来自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       '
于 2012-09-24T11:22:59.810 回答
1

使用 SimpleDateFormat:

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

为了以您想要的格式存储日期,您会做类似的事情,只是从另一个方向......

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

于 2012-09-24T05:24:55.210 回答