Programmer120
Programmer120

Reputation: 2592

How to convert strings to TimeStamps for compare?

I have strings like:

first = '2018-09-16 15:00:00'

second = '1900-01-01 09:45:55.500597'

I want to compare them.

All methods I found like Convert string date to timestamp in Python requires to know the format of the string.

I don't know the format of the strings (see differences between first and second) all I know is that they can be converted to timestamps.

How can I convert them in order to compare them?

Edit: The "largest" string that I can get is:

1900-01-01 09:45:55.500597

but I can also get:

1900-01-01
1900-01-01 09:45
1900-01-01 09:45:55

etc..

It's always YYYY-MM-DD HH-MM....

Upvotes: 2

Views: 757

Answers (2)

Eugene Yarmash
Eugene Yarmash

Reputation: 150041

You can use the dateutil module (pip install python-dateutil):

>>> from dateutil.parser import parse
>>> parse('2018-09-16 15:00:00')
datetime.datetime(2018, 9, 16, 15, 0)
>>> parse('1900-01-01 09:45:55.500597')
datetime.datetime(1900, 1, 1, 9, 45, 55, 500597)

From the list of its features:

Generic parsing of dates in almost any string format;

Once you have the datetime objects, you can compare them directly, there's no need to calculate the timestamps.

Upvotes: 2

PabTorre
PabTorre

Reputation: 3127

You can use pandas.to_datetime. It offers a lot of flexibility in the string timestamp format, and you can use it on single strings or list/series/tuples of timestamps.

>>> import pandas as pd
>>> day = pd.to_datetime('1900-01-01')
>>> minute = pd.to_datetime('1900-01-01 09:45')
>>> second = pd.to_datetime('1900-01-01 09:45:55')
>>> subsecond = pd.to_datetime('1900-01-01 09:45:55.500597')
>>> assert subsecond > second 
>>> assert minute < second 
>>> assert day < minute 

Upvotes: 2

Related Questions