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

Life of Brian: Conjugate the verb, "to go" !
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
  Change Time Format in Python bluethundr 2 288 Mar-04-2019, 09:13 PM
Last Post: bluethundr
  Incorrect code output (File not being created) Hass 4 378 Jan-01-2019, 04:10 AM
Last Post: ichabod801
  Incorrect lambda vndywarhol 3 599 Aug-13-2018, 02:21 AM
Last Post: ichabod801
  mysql.connector - incorrect integer value Milo 3 4,528 Aug-14-2017, 06:29 PM
Last Post: nilamo
  Wrong or missing date format and time in mails sipriusPT 3 935 Aug-08-2017, 03:22 PM
Last Post: sipriusPT

Forum Jump:


Users browsing this thread: 1 Guest(s)