这个日期格式叫什么,我该如何解析它?

时间:2010-10-27 13:55:03

标签: php parsing date

我正在解析的一些文件中有一种奇怪的日期格式。以下是一些例子:

1954203
2012320
2010270

前四位是年份,接下来的三位数是一年中的某一天。例如,第一个日期是1954年的第203天,或者是1954年7月22日。

我的问题是:

  1. 这个日期格式叫什么?
  2. 是否有预先解决方法?我不想在这里重新发明轮子。
  3. 编辑:抱歉,我忘了提及我的语言。 PHP。

5 个答案:

答案 0 :(得分:2)

尝试:

$oDate = DateTime::createFromFormat('Yz', 201026);
echo $oDate->format('Y-m-d');

答案 1 :(得分:0)

对于Java,请参阅SimpleDateFormat。你想要yyyyDDD作为格式(年份,然后是一年中的一天)。

答案 2 :(得分:0)

假设你在C#中将它作为一个字符串...

DateTime GetDate(string input)
{
    int year = Int32.Parse(input.Substring(0,4));
    int day = Int32.Parse(input.Substring(4,3));
    return (new DateTime(year,1,1)).AddDays(day - 1);
}

(注意日期编号的-1偏移,因为您已经在第1天开始)

答案 3 :(得分:0)

在PHP中格式化日期:

echo date_parse_from_format("Yz", $date);

您也可以使用

DateTime::createFromFormat("YZ", $date);

或它的别名

date_create_from_format("Yz", $date)

返回DateTime对象

答案 4 :(得分:0)

原来我想要的是这个:

$date = '1954203';
$year = substr($date, 0, 4);
$day = substr($date, 4, 3);
$new_date = date("Y-m-d", mktime(1, 1, 1, 1, $day, $year));