如何统一日期格式

时间:2018-03-11 06:53:51

标签: php python-3.x datetime strtotime strptime

我正在尝试统一Google工作表中的不同日期格式。我将文件作为csv下载并开始尝试,但问题是我的格式完全不同。我最初开始使用python但没有重新格式化所有内容。我试图从php使用strtotime(),但它没有给出正确的结果,因为有时格式是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文档中的文件: csv file

1 个答案:

答案 0 :(得分: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 docs

上查看日期功能