AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Erledigt - DateUtils.RecodeTime und 0 Sekunden
Thema durchsuchen
Ansicht
Themen-Optionen

Erledigt - DateUtils.RecodeTime und 0 Sekunden

Ein Thema von Glados · begonnen am 29. Aug 2017 · letzter Beitrag vom 30. Aug 2017
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.387 Beiträge
 
Delphi 12 Athens
 
#1

AW: Erledigt - DateUtils.RecodeTime und 0 Sekunden

  Alt 29. Aug 2017, 23:13
Bei mir stimmt es und ist am Ende immernoch :59 .

Wurde in deinem Programm am Round-Mode rumgepfuscht?

TDateTime (Double) ist noch ein paar Jährchen genau genug, um auf mindestens 1 Millisekunde genau zu sein.
Also Rundungsfehler aufgrund der Datengröße kann es nicht sein.
Bleibt also nur noch ein anderer Rundungsmodus oder eine kaputte FPU.


PS: Ab dem 19. Januar 2038 um 03:14:08 wird deine Funktion wieder kaputt sein, wenn der Integer zu klein für den Unix-Timestamp ist.


[edit]
Ahh, also doch ein Rundungsproblemchen, nur wo anders.

und
Delphi-Referenz durchsuchenFormatDateTime
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Aug 2017 um 23:17 Uhr)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#2

AW: Erledigt - DateUtils.RecodeTime und 0 Sekunden

  Alt 29. Aug 2017, 23:24
Zitat:
Bei mir stimmt es und ist am Ende immernoch :59 .
Ahh, also doch ein Rundungsproblemchen, nur wo anders.
Mit Trunc oder Round?
Genau. Trunc durch Round tauschen und alles ist gut.

Zitat:
PS: Ab dem 19. Januar 2038 um 03:14:08 wird deine Funktion wieder kaputt sein, wenn der Integer zu klein für den Unix-Timestamp ist.
Na dann werde ich schon jetzt alle Integer-Timestamps durch irgendwas anderes ersetzen. Int64, hilft das?
Ansonsten baue ich alles nach ISO 8601 YYYYMMDDHHMMSS) um.
( Ich habe hierzu ein neues Thema eröffnet: http://www.delphipraxis.net/193693-d...ml#post1379906 )

Zitat:
FormatDateTime
Was FormatDateTime angeht: es werden keine Uhrzeiten 00:00:00 dargestellt. Findet sich auch einiges bei Google drüber.
Habe das jetzt anders gfelößt.
Aber wie kommt man auf die beknackte Idee 00:00:00 nicht darstellen zu müssen?

Geändert von Glados (29. Aug 2017 um 23:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.663 Beiträge
 
Delphi 12 Athens
 
#3

AW: Erledigt - DateUtils.RecodeTime und 0 Sekunden

  Alt 30. Aug 2017, 07:41
Zitat:
FormatDateTime
Was FormatDateTime angeht: es werden keine Uhrzeiten 00:00:00 dargestellt. Findet sich auch einiges bei Google drüber.
Habe das jetzt anders gfelößt.
Aber wie kommt man auf die beknackte Idee 00:00:00 nicht darstellen zu müssen?
Das gilt doch aber nur, wenn du als Format einen Leerstring oder 'c' mitgibst. Versuch mal 'ddddd t' als Format-String.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#4

AW: Erledigt - DateUtils.RecodeTime und 0 Sekunden

  Alt 30. Aug 2017, 07:55
Klar geht das mit FormatDateTime, gerade unter Tokyo.1 getestet.

Delphi-Quellcode:
procedure TForm10.Button1Click(Sender: TObject);
var
  mytime: TDateTime;
begin
  mytime := Trunc(Now);
  Label1.Caption := FormatDateTime('ddddd tt', mytime, TFormatSettings.Create);
end;
Das liefert im Label dann "30.08.2017 00:00:00"

Ansonsten ist das Verhalten von DateTimeToString "as designed".

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
601 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Erledigt - DateUtils.RecodeTime und 0 Sekunden

  Alt 30. Aug 2017, 09:22
Zitat:
Gerade entdeckt, dass DateTimeToStr() keine Zeit darstellt, wenn es 00:00:00 ist.
Dann nimm FormatDateTime und Du hast, egal wie die Uhrzeit ist, immer die gleiche Formatierung!

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz