Как называется этот формат даты и как его анализировать? - PullRequest
0 голосов
/ 27 октября 2010

У меня странный формат даты в некоторых файлах, которые я анализирую. Вот несколько примеров:

1954203
2012320
2010270

Первые четыре цифры - это год, а следующие три цифры - день года. Например, первой датой является 203-й день 1954 года или 7/22/1954.

Мои вопросы:

  1. Как называется этот формат даты?
  2. Есть ли заранее подготовленный способ его анализа? Я не хочу изобретать велосипед здесь.

Редактировать: Извините, я забыл упомянуть мой язык. PHP.

Ответы [ 5 ]

2 голосов
/ 27 октября 2010

Попробуйте:

$oDate = DateTime::createFromFormat('Yz', 201026);
echo $oDate->format('Y-m-d');
0 голосов
/ 27 октября 2010

Оказывается, что я хотел, было это:

$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));
0 голосов
/ 27 октября 2010

Предполагая, что вы получите его в виде строки в 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 для номера дня, поскольку вы уже начинаете с первого дня)

0 голосов
/ 27 октября 2010

В PHP для форматирования даты:

echo date_parse_from_format("Yz", $date);

Вы также можете использовать

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

или его псевдоним

date_create_from_format("Yz", $date)

, который возвращает DateTime объект

0 голосов
/ 27 октября 2010

Для Java см. SimpleDateFormat . Вы хотите yyyyDDD в качестве формата (год, затем день в году).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...