我正在尝试统一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
答案 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
上查看日期功能