Как унифицировать форматы даты

Я пытаюсь объединить различные форматы даты из листа Google. Я скачал файл как csv и начал пробовать, но проблема в том, что у меня совсем другие форматы. Я изначально начал с python, но не переформатировал все. Я пытался использовать strtotime () из php, но он не дал правильных результатов, потому что иногда форматом является mm-dd-yyyy, а иногда это yyyy. Все, что меня действительно волнует, это последние 2 цифры года. Если это «8/3/2012», тогда все, что мне нужно, это «12». Это код Python, который дал мне лучший результат, но все еще не очистил все.

import csv

f = open('ViceNews_FullOISData.csv', encoding='latin-1', newline='')
reader = csv.reader(f)

o = open('clean.csv', 'w', encoding='latin-1', newline='')
writer = csv.writer(o)

count = 0
for row in reader:
if len(row[0].strip()) == 4:
writer.writerow(row)
count = count + 1
else:
date_d = row[0]
if date_d[-4:].find("-") != -1 or date_d[-4:].find("/") != -1:
year_c = date_d[:4]
else:
year_c = date_d[-4:]
row[0] = year_c
writer.writerow(row)
count = count + 1
print (count)
f.close()
o.close()

Любой совет приветствуется. Вот файл в Google Docs:
CSV-файл

0

Решение

Используя PHP, это просто, вам просто нужно использовать функцию date() как это :

// let's say the date field value from your csv is in a var called
$csv_date_value

$year = date('y', strtotime($csv_date_value));

РЕДАКТИРОВАТЬ ——

Итак, я попробовал что-то, что хорошо работало, вот код, который я использовал:

$date = new Datetime();
$date = date_create_from_format('Y', '2010');
echo date('Y', $date->getTimestamp()); // returns 2010
echo date('y', $date->getTimestamp()); // returns 10

Вы можете проверить функцию даты на PHP документы

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]