簡體   English   中英

這個日期格式叫什么,我該如何解析它?

[英]What is this date format called and how do I parse it?

我正在解析的一些文件中有一個奇怪的日期格式。 這里有些例子:

1954203
2012320
2010270

前四位是年份,接下來的三位數是一年中的一天。 例如,第一個日期是1954年的第203天,即1954年7月22日。

我的問題是:

  1. 這個日期格式叫什么?
  2. 是否有預定義的解析方式? 我不想在這里重新發明輪子。

編輯:對不起,我忘了提到我的語言了。 PHP。

嘗試:

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

對於Java,請參閱SimpleDateFormat 你想要yyyyDDD作為格式(年份,然后是一年中的一天)。

假設你在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天開始)

用PHP格式化日期:

echo date_parse_from_format("Yz", $date);

你也可以使用

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

或者它的別名

date_create_from_format("Yz", $date)

它返回一個DateTime對象

原來我想要的是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM