You can use several Python modules to convert a string date/datetime to a timestamp. Depending on the date type:
- string representing a date
- datetime
You have different solutions. Lets see an example when the date is stored as a string. This solution works for Python 2 and 3. It remove the time and convert the string to datetime. After that apply the format for unix datetime:
import datetime
my_date = '18/10/2018'
print(int(datetime.datetime.strptime(my_date, '%d/%m/%Y').strftime("%s")))
result:
15386815398100006800
Next example is using different approach:
from datetime import timezone
dt = datetime.datetime(2018, 10, 18)
unix_ts_utc = dt.replace(tzinfo=timezone.utc).timestamp()
print(unix_ts_utc)
unix_ts = dt.timestamp()
print(unix_ts)
result:
1539820800.0
1539810000.0
In this case we assume that the date is stored as datetime. The second line of the code create a date time from the year, month and the day. This function returns the time since epoch for that datetime object. You can see the difference in using a time zone from this example. This code example works only for python 3.
You can create a datetime also using formatting like:
datetime.datetime.strptime('16/08/2018', '%d%m%Y')
The third option is by using dateutil and parser. You can see the example below:
import dateutil.parser
my_date = '18/10/2018'
my_ts = dateutil.parser.parse(my_date, dayfirst=True).timestamp()
print(my_ts)
result:
1539810000.0
This method parse your date by taking into account that your date has day in the beginning. Then conver it to a timestamp.
Note 1: Sometimes you may need to multiply the timestamp on 1000 in order to work for some systems.
Note 2: The unix timestamp(POSIX time) represents the number of seconds that have passed between the beginning of the unix epoch and the date specified.