Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Incorrect time format
#1
Hello,
I have a problem with the time format.

Function excerpt:

format = '%H:%M:%S.%f'
aktual=datetime.datetime.now().time()
 
try:
        timeON = datetime.datetime.strptime(str(aktual), format) - datetime.datetime.strptime(lampaTV.AutoON, format)
except ValueError as e:
        print('Time error1:', e)
This function is called about 4 times per second and works well but after 2-4 days it throws an error e.g.
Quote:ValueError("time data '20:42:11' does not match format '%H:%M:%S.%f'",))

I can't deal with it for a long time Confused
Quote
#2
Well, it would appear that occasionally the microseconds are not being provided. It that case use a try/except block (which you seem to have already set up). In the case of an error, try the same thing but without the '.%f'.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures

Quote
#3
Do a check so it work in both cases or more if needed.
Example:
from datetime import datetime

def date_check(d):
    try:
        if '.' in d:
            return datetime.strptime(d, '%H:%M:%S.%f')
        else:
            return datetime.strptime(d, '%H:%M:%S')
    except ValueError as error:
        print(error)
        # Can log error if want it to continue on error
        # Not ideal but <pass> will also continue
 
Test:
d = '20:42:11.00567' 
>>> date_check(d)
datetime.datetime(1900, 1, 1, 20, 42, 11, 5670)
>>> 
>>> d = '20:42:11'
>>> date_check(d)
datetime.datetime(1900, 1, 1, 20, 42, 11)
Quote
#4
И guess the problem (missing microseconds) is in lampaTV.AutoON - check you have microseconds there
Quote
#5
Do not take it too seriously: 'format' is built-in function name and by overwriting it you live in state of sin and deserve whatever happens to you.

In more serious note:

>>> format(42, 'b')
101010
>>> format = '%H:%M:%S.%f'                                                
>>> format(42, 'b')
/.../
TypeError: 'str' object is not callable
It's late evening I am probably not the brightest, but I observe:

datetime.datetime.now() --> datetime.datetime object
datetime.datetime.now().time --> datetime.time object

From datetime.datetime object you create datetime.time object, then convert this object into string and then parse time from string and get again datetime.datetime object. As at the end you get same object type you started with I have a question - are all these conversion necessary?
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Quote
#6
This is something like a timer. Unfortunately, I understand date / time variable in Python. Actually, I can only download a variable that records the entire date and time together - I haven't found another solution.

Naturally, my variables are saved in the correct format.
AutoON='21:00:00.0000'
The problem is that Python gets the current time in the wrong format.

Getting time without .%F is pointless, because I can't compare it with my variables in this format anyway.

Yesterday I came up with such (stupid?) idea:
    aktual=datetime.datetime.now().time()
    try:
        zmiennaON = datetime.datetime.strptime(str(aktualnie), format) - datetime.datetime.strptime(lampaTV.AutoON, format)
    except ValueError as e:
        print('Time Error1:', e)
        aktual=datetime.datetime.now().time()
        timeON = datetime.datetime.strptime(str(aktual), format) - datetime.datetime.strptime(
This is just a workaround, not a solution, but I'll try.
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  getting error ValueError: time data '' does not match format '%H:%M' srisrinu 2 177 Apr-09-2020, 11:12 AM
Last Post: srisrinu
  user input producing incorrect boolean al_Czervik 4 267 Mar-05-2020, 09:50 PM
Last Post: al_Czervik
  Change Time Format in Python bluethundr 2 482 Mar-04-2019, 09:13 PM
Last Post: bluethundr
  Incorrect code output (File not being created) Hass 4 550 Jan-01-2019, 04:10 AM
Last Post: ichabod801
  Incorrect lambda vndywarhol 3 762 Aug-13-2018, 02:21 AM
Last Post: ichabod801
  mysql.connector - incorrect integer value Milo 3 5,572 Aug-14-2017, 06:29 PM
Last Post: nilamo
  Wrong or missing date format and time in mails sipriusPT 3 1,182 Aug-08-2017, 03:22 PM
Last Post: sipriusPT

Forum Jump:


Users browsing this thread: 1 Guest(s)