How to remove seconds from Python datetime object? [duplicate] - python

This question already has answers here:
How to truncate the time on a datetime object?
(18 answers)
How to display locale sensitive time format without seconds in python
(4 answers)
Closed 4 years ago.
I have a python datetime object that I want to display on a website, however the time shows in the format hh:mm:ss and I want to display it in the format hh:mm.
I have tried using the replace method as per the following:
message.timestamp.replace(second='0', microsecond=0)
However this doesn't get red of the seconds it just replaces it with hh:mm:00

Use strftime() function
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2018, 12, 27, 11, 14, 37, 137010)
>>> now = datetime.now()
>>> now.strftime("%H:%M")
'11:15'

Related

How to convert decimal time to normal time [duplicate]

This question already has answers here:
Converting unix timestamp string to readable date
(19 answers)
Closed 1 year ago.
I have a very silly question... how I can convert this timestring to a normal datetime?
20170509.54166667
Greetings.
You can do:
import datetime
datetime.datetime.fromtimestamp(20170509.54166667)
# which returns this:
datetime.datetime(1970, 8, 22, 11, 55, 9, 541667)

Subtract 3 months from datetime.now() [duplicate]

This question already has answers here:
How do I calculate the date six months from the current date using the datetime Python module?
(47 answers)
Closed 3 years ago.
How do I remove 3 months from the date? tried to use relativedelta, but I don't have the lib, so is there another way?
from datetime import datetime
now = datetime.now()
print("timestamp =", now)
You can use:
import datetime
a = datetime.datetime.now()
b = a - datetime.timedelta(weeks=12)
Note that you cannot give months as inputs, but weeks and days, and smaller
Perhaps, subtracting with datetime.timedelta can help you estimate the date:
import datetime
datetime.datetime(2019,5,31) - datetime.timedelta(3*365.25/12)
This result is not completely accurate, as it does not account for the leap years in the usual way, however for less precise calculations within a year should suffice. If you need accuracy you will need to use the method below.
For dateutil.relativedelta, you need to first install the module with pip install python-dateutil, and then use it in the following way:
import datetime
from dateutil.relativedelta import relativedelta
datetime.datetime(2019,5,31) - relativedelta(months=3)
If you want to perform complex operations on datetime objects, I can only recommend you to use the library arrow that will handle all the edge cases for you.
The documentation of this library is available here: https://arrow.readthedocs.io/en/latest/
For instance in your case:
>>> import arrow
>>> a = arrow.utcnow()
>>> a
<Arrow [2019-11-20T13:03:52.518238+00:00]>
>>> a.datetime
datetime.datetime(2019, 11, 20, 13, 3, 52, 518238, tzinfo=tzutc())
>>> b = a.shift(months=-3)
>>> b
<Arrow [2019-08-20T13:03:52.518238+00:00]>
>>> b.datetime
datetime.datetime(2019, 8, 20, 13, 3, 52, 518238, tzinfo=tzutc())

Convert 2017-01-24T23:25:39 into datetime object [duplicate]

This question already has answers here:
How do I parse an ISO 8601-formatted date?
(29 answers)
Closed 5 years ago.
I have weird date format in logs: 2017-01-24T23:52:14
I am trying to convert this string into datetime Python object like this:
date_from_log = datetime.strptime('2017-01-24T23:52:14', '%Y-%m-%dT%I:%M:%S')
but I get:
ValueError: time data ' 2017-01-24T23:25:39 ' does not match format '%Y-%m-%dT%I:%M:%S'
What is wrong?
You should be using %H for hours!!
date_from_log = datetime.strptime(s, '%Y-%m-%dT%H:%M:%S')
Output:
datetime(2017, 1, 24, 23, 52, 14)

UTS to DateTime in Python from Last.fm API [duplicate]

This question already has answers here:
Converting unix timestamp string to readable date
(19 answers)
Closed 7 years ago.
The last.fm API using user.getRecentTracks method's response supplies a date in the following format:
"date": {
"#text": "11 Dec 2015, 01:41",
"uts": "1449798068"
},
What is this "uts" field and how do I convert it into datetime string for a MySql database in python? Would your suggested answer be more efficient than using datetime.datetime.strptime() method to convert the text string given?
uts looks like a timestamp. The abbreviation probably stands for UTC timestamp or Unix Timestamp. I'm not sure which, but, it simple to convert it to a datetime object
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(1449798068)
>>> print(dt)
datetime.datetime(2015, 12, 10, 20, 41, 8)
It seems the #text key has the time in a local timezone, which is five hours ahead.

simple way to drop milliseconds from python datetime.datetime object [duplicate]

This question already has answers here:
How to truncate the time on a datetime object?
(18 answers)
Closed 7 years ago.
My colleague needs me to drop the milliseconds from my python timestamp objects in order to comply with the old POSIX (IEEE Std 1003.1-1988) standard. The tortured route that accomplishes this task for me is as follows:
datetime.datetime.strptime(datetime.datetime.today().strftime("%Y-%m-%d %H:%M:%S"),"%Y-%m-%d %H:%M:%S")
Is there a simpler way to end up with a datetime.datetime object for mongoDB than this?
You can use datetime.replace() method -
>>> d = datetime.datetime.today().replace(microsecond=0)
>>> d
datetime.datetime(2015, 7, 18, 9, 50, 20)

Categories

Resources