Using standard libraries to parse and reformat the time and handle a CSV correctly:
import csv
import datetime as dt
# Never use the default encoding. It's OS-specific.
# newline='' is a documented requirement for csv.reader/writer.
with (open('input.csv', 'r', encoding='utf8', newline='') as fin,
open('output.csv', 'w', encoding='utf8', newline='') as fout):
reader = csv.reader(fin)
writer = csv.writer(fout)
for data in reader:
d = dt.datetime.strptime(data[1], '%m/%d/%Y')
data[1] = d.strftime('%B %d, %Y')
writer.writerow(data)
input.csv:
Richard Alexander,12/21/1995
John Smith,1/2/2002
Kilroy Washere,5/10/2010
output.csv:
Richard Alexander,"December 21, 1995"
John Smith,"January 02, 2002"
Kilroy Washere,"May 10, 2010"
Using pandas
:
import pandas as pd
df = pd.read_csv('input.csv', encoding='utf8', header=None, parse_dates=[1])
df.to_csv('output.csv', encoding='utf8', index=False, header=None, date_format='%B %d, %Y')
(same output)
See Also: Format Codes