Aktuelle Zeit als String

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

wieso bekomme ich das nicht hin? Ich möchte eine Funktion schreiben, welche die aktuelle Zeit als String im Format 'hh:mm:ss' zurück gibt. Habe die Doku zu datetime bestimmt schon dreimal durchgewühlt mit niederschmetterndem Ergebnis.Die Ausgabe von

Code: Alles auswählen

datetime.datetime.now().isoformat()
ist mir einfach zu lang. strftime() will einen Integer haben!
BlackJack

@hans: Die `strftime()`-Methode auf `datetime.datetime`-Objekten will sicher keine ganze Zahl haben sondern nur die Formatzeichenkette. Apropos Formatzeichenkette: der Typ implementiert `__format__()`, funktioniert also auch mit der `format()`-Funktion oder der `format()`-Methode auf Zeichenketten.

Code: Alles auswählen

In [7]: from datetime import datetime as DateTime

In [8]: DateTime.now().strftime('%H:%M:%S')
Out[8]: '16:42:23'

In [9]: format(DateTime.now(), '%H:%M:%S')
Out[9]: '16:42:49'

In [10]: '{0:%H:%M:%S}'.format(DateTime.now())
Out[10]: '16:43:13'
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

@BlackJack: wieso geht das bei dir so einfach? Was habe ich nicht alles versucht. Klappt auf Anhieb.

noch kurze Frage zu den Eltern. Ich habe folgende Konstruktion (nur Codeausschnitte)

Hauptanwendung

Code: Alles auswählen

class SQLiteGUI_CLA(QtGui.QDialog):
    
    def __init__(self):
        super(SQLiteGUI_CLA, self).__init__()
        loadUi('SQLiteGUI.ui', self)
        self.DB      =sqliteassistdb.Sql_CLA()
        self.__debug = 9         # Debuglevel
                                 #    0 error
                                 #    3 warning
                                 #    6 info
                                 #    9 blablabla
                                      
        self.__date  = None

        self.DB.setParent(self)
 :
 :
 :
     def debugMessage(self,debugLevel,s):
        if self.__date != self.today():
            self.__date = self.today()
            self.plainTextEditLog.appendPlainText(
                self.__date.isoformat())
        if debugLevel <= self.__debug:
            self.plainTextEditLog.appendPlainText(
                format(DateTime.now(), '%H:%M:%S') + ' : ' + s
Die Klasse Sql_CLA ist von QObject abgeleitet. Dort rufe ich debugMeassage wie folgt auf

Code: Alles auswählen

self.parent().debugMessage(6, 'Database Name set to: ' + self.__dbName)
Es läuft. Meine Frage ist nur, ist das übliche Praxis oder begebe ich mich irgendwie auf's Glatteis?
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@hans: Doppelunterstriche bei Attributen ist in Deinem Fall unsinnig. Was macht denn die Methode today und was hat die in der Klasse SQLiteGUI_CLA zu suchen? Für das Loggen von Meldungen gibt es das logging-Modul. Die Datenbankklasse sollte eigentlich nichts von der GUI brauchen.
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Ich logge in diesem Fall nicht in eine Datei sondern in eine plainTextBox. Werde das auch noch an anderer Stelle benötigen
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@hans: gerade weil Du das Logging an vielen Stellen brauchst, ist es wichtig, das Du den Standard einsetzt. Don't Reinvent The Wheel.
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

@Sirius3, dann will ich mal offenbaren was ich hier warum treibe.
  1. kein Job und deshalb viel Zeit und kein Selbstwertgefühl. Auf Grund meines Alters ist auch nichts mehr in Sicht. Die Lösung eines Problems baut auf!
  2. 5 Jahre lang nichts in Python gemacht. Die grauen Zellen haben soooo viel vergessen :? An dem Projekt will ich lernen
  3. Was soll es werden? Es soll eine grafische Oberfläche werden um SQLite Datenbanken zu verwalten.
    Tabellensrtuktur erstellen / ändern, Datenbank anlegen, Tabellen abfragen, Indexe erstellen, etc.
    Abfragen drucken / speichern / exportieren
Ja gibt es alles schon, aber irgendwo muss ich ja anfangen und in Datenbanken kenne ich mich halbwegs aus. Und Fehlermeldungen möchte ich sofort sehen, besonders die SQL basierten.

Der Hinweis mit dem logging ist allerdings gut. Wird hoffentlich nicht mein einziges Projekt bleiben.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das Python-logging Modul hat (in all seiner Javaesken Schoenheit ;) ) ja den Vorteil, dass du selbst Handler bauen kannst. Das heisst du kannst es ein eine Datei laufen lassen, aber per Konfiguration auch problemlos in ein dezidiertes Fenster. Die Investition lohnt also doppelt.
Antworten