简体   繁体   中英

Python Convert UTC Datetime in string to unix time

I have a column called 'created_at' in dataframe df, its value is like '2/3/15 2:00' in UTC. Now I want to convert it to unix time, how can I do that?

I tried the script like:

time.mktime(datetime.datetime.strptime(df['created_at'], "%m/%d/%Y, %H:%MM").timetuple())

It returns error I guess the tricky part is the year is '15' instead of '2015'

Is there any efficient way that I am able to deal with it?

Thanks!

%Y is for 4-digit years.

Since you have 2-digits years (assuming it's 20##), you can use %y specifier instead (notice the lower-case y).

You should use lowercase %y (year without century) rather than uppercase %Y (year with century)

since you mention that you're working with a pandas DataFrame, you can simplify to using

import pandas as pd
import numpy as np

df = pd.DataFrame({'times': ['2/3/15 2:00']})

# to datetime, format is inferred correctly
df['datetime'] = pd.to_datetime(df['times'])

# df['datetime'] 
# 0   2015-02-03 02:00:00
# Name: datetime, dtype: datetime64[ns]

# to Unix time / seconds since 1970-1-1 Z
# .astype(np.int64) on datetime Series gives you nanoseconds, so divide by 1e9 to get seconds
df['unix'] = df['datetime'].astype(np.int64) / 1e9

# df['unix']
# 0    1.422929e+09
# Name: unix, dtype: float64

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM