AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wieviele Zeichen hat ein Zeitstempel maximal?
Thema durchsuchen
Ansicht
Themen-Optionen

Wieviele Zeichen hat ein Zeitstempel maximal?

Ein Thema von Der schöne Günther · begonnen am 30. Aug 2016 · letzter Beitrag vom 31. Aug 2016
Antwort Antwort
Seite 1 von 2  1 2      
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 17:48
Einfache Aufgabe: Wie viele Zeichen brauchen wir um Datum und Uhrzeit anzuzeigen?

Mir fällt keine einfache Lösung ein. Folgendes Programm verdeutlicht es:
Delphi-Quellcode:
program Project15;

{$APPTYPE CONSOLE}

{$R *.res}

uses System.SysUtils, System.DateUtils;

var
   timestamp: TDateTime;
begin
   FormatSettings := TFormatSettings.Create('EN');

   timeStamp := EncodeDateTime(
      2016, 08, 02,
      09, 05, 03, 0
   );
   WriteLn( DateTimeToStr(timestamp) );

   timeStamp := EncodeDateTime(
      2016, 11, 22,
      12, 15, 13, 999
   );
   WriteLn( DateTimeToStr(timestamp) );

   readln;
end.
Ausgabe:
Code:
8/2/2016 9:05:03 AM
11/22/2016 12:15:13 PM
Das nur als Beispiel für ein bestimmtes FormatSetting ("EN").
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 17:57
Allgemein natürlich beliebig viele.

Wenn du ein Limit setzen musst, dann musst du das Format festlegen und z.B. einfach nach ISO "2016-08-30T16:14:03Z" hinschreiben. Ansosnten kann ich ja hingehen und mir im Windows einstellen, dass die Standard-Locale "Llanfairpwllgwyngyllgogerychwyrndrobwllllantysili ogogogoch" ist, in deren Standard-Zeitformat eben Wochentage vorkommen mit ähnlich vielen Zeichen

Oder Klingonische Wochentage ...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 18:04
Ich kann das Format nicht festlegen, das ist, was der Benutzer grade als Anwendungssprache eingestellt hat.

Ich tue mich schwer mit dem "maximalen Zeitstempel". Wer sagt mir dass z.B. nur "vormittags" an die Uhrzeit drangeschrieben wird, nicht aber "nachmittags" (und somit länger ist)?
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#4

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 20:11
Auf Win32-Systemen beträgt die Größe von System.Extended 10 Byte.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 20:47
Ins falsche Thema geklickt?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 22:28
Nein, nicht ins falsche Thema geklickt.

Die Zeitangabe ist eine Zahl, vor dem Komma stehen die Tage, hinter dem Komma die Tagesanteile.

Die einfachste Methode ist (meiner Meinung nach) diese Zahl zu speichern.

Muss die Zeit, das Datum oder eine Kombination daraus angezeigt werden, nimmt man dafür die Systemeinstellungen des Rechners, auf dem die Software gerade läuft, muss sich aber keinerlei Gedanken darüber machen, wie diese Einstellungen sind, um die daraus resultierende "beliebig lange Zeichenfolge" verlustfrei abzuspeichern.

Speichere ich für Zeitangaben nur die Zahl ab, so ist es egal, ob der Anwender auf seinem System das Datum nun in der deutschen, der englischen, griechischen, römischen ... Form, mit oder ohne ausgeschriebene Wochentage, Monate ... eingestellt hat. Die Zahl bleibt immer die Gleiche und in der Anzeige stehts halt so, wie der Anwender es für sich als gut befindet.

Weiterer Vorteil: Hast Du die Zeitangabe in 'ner Datenbank als Zahl abgespeichert, so kannst Du immer aufsteigend oder absteigend danach sortieren per "order by Zeitspalte". Du musst Dir keinen Kopp darüber machen, ob Du jetzt zuerst eine (wie auch immer geartete) Stringzerlegung implementieren musst, damit Du eine Zeichenfolge bekommst, die mit dem Jahr beginnt, dann den Monat enthält, gefolgt vom Tag und der Uhrzeit.

Hier könntest Du, je nach der vom Anwender getroffenen Systemeinstellung für Datums- und Zeitangaben richtig Spass bekommen. System.Extended ist da in der Verwendung banal einfach.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 22:56
Genau, Datenspeicherung/-verarbeitung und Datenanzeige sind vollkommen getrennt.

Der User bekommt es im aktuellen Systemformat und intern nutzt man ein definiertes Format. (binär oder sonstwie)
Wäre doch zu blöd, wenn du es speicherst, jemand zwischendurch die Sprache ändert oder von einem anderen System/Benutzerkonto drauf zugreift und du das alte Format nicht mehr auslesen/verstehen kannst.

Alternativ muß man zu den Daten das Speicherformat mit speichern, um beim Auslesen die Daten immer verstehen zu können.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 30. Aug 2016, 23:48
Einfache Aufgabe: Wie viele Zeichen brauchen wir um Datum und Uhrzeit anzuzeigen?
Ein Wort passt da nicht rein


Was willst du denn mit der Zeit machen: ausgeben (GUI/Report) oder irgendwo speichern? Ich persönlich mag ja UNIX-Timestamps als Austauschformat, wenn man in Delphi bleibt kann man vermutlich auch das interne Format benutzen. Keine Ahnung, ob die Referenzzeit des Formats in Delphi (December 30, 1899; 12:00 A.M) auch eine festgelegte Zeitzone hat ... sonst könnte das auch schnell unangenehm werden.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 31. Aug 2016, 07:24
Na, das ist doch jetzt aber einfach, wenn Du folgende Regeln beachtest:
1) Zeige einen Zeitstempel an
2) Der Anwender ist König
3) Der Anwender darf beliebige Anzeigeformate einstellen

Lösung: Beliebig lange.

Wenn Deine Anwendung also derartig flexibel sein soll/muss/darf, dann mußt Du auch Deine Anwendung entsprechend bauen. Wenn also ein beliebiges Format für eine Zeitstempel-Anzeige gestattet ist, dann mußt Du eben ausmessen, wie lange das im jeweils konkreten Fall wird, und entsprechend für Platz sorgen. Du könntest natürlich auch den faulen/praktischen/KISS Weg gehen und das Format selbst festlegen, eventuell basierend auf den Gewohnheiten Deiner drei häufigsten Anwendergruppen (nein, nicht Frauen, Männer und Kinder, sondern Deutsche, Engländer und Russen). Für diese Gruppen definierst Du dann fixe Formate basierend auf deren jeweiligen Landesstandards, die kannst Du dann per Konfiguration zur Auswahl geben, oder eben selbst festlegen. Dann weisst du wie lange so ein Zeitstempel maximal werden kann (vermutlich den 31.12.9999 23:59:59 als Grundlage nehmen). Insgesamt auch nicht soooo KISS, aber weniger aufwendig als die total flexible Lösung.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Wieviele Zeichen hat ein Zeitstempel maximal?

  Alt 31. Aug 2016, 08:32
Leute, bitte.

Vielen Dank für die enthusiastischen Beiträge, aber ... Ich meine Zeichen (nicht Bytes). Zeichen auf dem Bildschirm, auf dem Papier, sonstwo. Niemand hat etwas von Speichern und Datenformaten gesagt.

Kann ich wissen wie breit ich meine Anzeige mindestens machen muss?
Mehr nicht

Das Format kann ich nicht vorgeben, das hat jede Landeseinstellung anders und das muss man respektieren.

Dann weisst du wie lange so ein Zeitstempel maximal werden kann (vermutlich den 31.12.9999 23:59:59 als Grundlage nehmen). Insgesamt auch nicht soooo KISS, aber weniger aufwendig als die total flexible Lösung.
Danke. Genau so habe ich es bislang. Das fällt natürlich flach sollte eine Ländereinstellung z.B. nur ein "AM" dranschreiben, aber kein "PM", aber das ist bislang das mit dem besten Aufwand/Nutzen-Verhältnis.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz