AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Aus Wert ein Datum konventieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aus Wert ein Datum konventieren

Ein Thema von ByTheTime · begonnen am 11. Dez 2011 · letzter Beitrag vom 12. Dez 2011
Antwort Antwort
Seite 1 von 2  1 2      
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 21:06
In Excel geht 11:24:35 rein: Excel.Cells[i + c, 2].Value := Table1Zeit.Value; In Excel steht das dann als 11:24:35 PM.
Aus Excel heraus mit SZeit := (Excel.Cells[e, 2].Value); kommt es als: 0,435295749386401(nur Bsp.)

Nach dem Delete:
Delphi-Quellcode:
 delete(SZeit, 1, 2);
 delete(SZeit, 9, 7);
steht dann da: 43529574

@Questin_mark: Gute frage, kann ich mir das iwo anschauen? Habe Win7 HP 64bit. Denke nicht, das MUI dabei ist. Sollten nur Englisch und Deutsch sein.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 21:09
Du bekommst schon TTime und TDate Werte letztlich ist TDateTime nur ein Double mit beispielsweise 0.5=12:00 0.75=18:00. Stringoperationen sind hier gar nicht angesagt.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 21:15
Na ja, das das kein gültiges Datum ist, ist offensichtlich. Anscheinend bekommst du die Uhrzeit als Float von Excel geliefert. Und wenn du die 0 und das Komma abschneidestm, kann das natürlich nicht mehr konvertiert werden.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  FloatTime = 0.435295749386401;
begin
  ShowMessage(TimeToStr(FloatTime));
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Question_mark

Registriert seit: 20. Okt 2004
54 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 21:35
Hallo,

Zitat von ByTheTime:
Denke nicht, das MUI dabei ist. Sollten nur Englisch und Deutsch sein.
Deutsch und englisch ist doch schon multilanguage ...
Hast Du den PC vom Saturn, Mediamarkt oder von deinem Arbeitgeber, der ein eigenes Lizenzabkommen mit MS hat, wie z.B. Siemens, Mercedes, Deutsche Bank oder was weiss ich ?

Wenn letzteres zutrifft, dann stelle einfach nur in der Systemeinstellung von Windows 7 die Regions- und Spracheinstellungen (also auch die Sprache und Darstellung von ShortTime, LongTime, ShortDate etc.) auf eine beliebige Sprache um und danach wieder auf deutsches Format zurück. Diese Win7 MUI Packages von MS haben einen Fehler, den MS zwar kennt, aber nicht beseitigen will. Auf der Win7 Oberfläche werden zwar z.B. in der Taskbar Datum und Uhrzeit korrekt im deutschen Format angezeigt .. Aber intern arbeitet Win7 immer noch mit den amerikanischen Formatierungen und da fällt man bei Datum/Zeitvergleichen mit Datenbanken etc. ganz mächtig auf die Sch...ze.

Gruß

Question_mark
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 21:40
Wie ich schon gezeigt habe, hat es damit nichts zu tun.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Question_mark

Registriert seit: 20. Okt 2004
54 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 22:40
Hallo,

Zitat von ByTheTime:
In Excel steht das dann als 11:24:35 PM.
Sieht schon sehr nach amerikanischer Formatierung aus, da steht AM/PM ....

Zitat von Luckie:
Wie ich schon gezeigt habe, hat es damit nichts zu tun.
Dann warten wir doch einfach mal ab, ob ByTheTime in der Lage ist, sein Betriebssystem zu identifizieren.

Wenn nicht, dann kann und will ich ihm auch nicht weiterhelfen.

Gruß

Question_mark

Geändert von Question_mark (11. Dez 2011 um 22:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 22:52
Hallo,

Zitat von ByTheTime:
In Excel steht das dann als 11:24:35 PM.
Sieht schon sehr nach amerikanischer Formatierung aus, da steht AM/PM ....

Zitat von Luckie:
Wie ich schon gezeigt habe, hat es damit nichts zu tun.
Dann warten wir doch einfach mal ab, ob ByTheTime in der Lage ist, sein Betriebssystem zu identifizieren.

Wenn nicht, dann kann und will ich ihm auch nicht weiterhelfen.

Gruß

Question_mark
Wenn man jemanden helfen möchte, dann sollte man zuhören oder in diesem Medium lesen:
In Excel geht 11:24:35 rein: Excel.Cells[i + c, 2].Value := Table1Zeit.Value; In Excel steht das dann als 11:24:35 PM.
Aus Excel heraus mit SZeit := (Excel.Cells[e, 2].Value); kommt es als: 0,435295749386401(nur Bsp.)
Da wird also ein Float-Wert (als String) zurückgeliefert.
Was soll das also bitte schön mit irgendeiner Regions-Einstellung zu tun haben?

Die Lösung würde so aussehen:
Delphi-Quellcode:
var
  lTime : TTime;

  lTime := StrToFloat( Excel.Cells[e, 2].Value );
Wenn Value von Typ Variant ist dann sollte es sogar so funktionieren:

Delphi-Quellcode:
var
  lTime : TTime;

  lTime := Excel.Cells[e, 2].Value;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (11. Dez 2011 um 22:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Aus Wert ein Datum konventieren

  Alt 11. Dez 2011, 23:02
@Question_mark
er braucht doch nur Datum als Float/TDate und Zeit als Float/TTime lesen und verwenden.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#9

AW: Aus Wert ein Datum konventieren

  Alt 12. Dez 2011, 18:42
Ich denke nicht das das was mit MUI zutun hat, habe Win7 HP und als Microsoft-Partner bekommt man min. Prof.
Das mit dem Float werde ich mal ausprobieren (:S, hatte es schon im Hinterkopf). Das habe ich aber bis jetzt nicht gemacht, da ich gehört habe, das man die ersten 2 Stellen wohl nicht braucht (Null und Komma), sowie alles was nach der Achten steht (ist mir völlig unverständlich). Naja, kann leider gerade nicht an mein Delphi, werde mein Ergebniss spätestens morgen mal posten.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Aus Wert ein Datum konventieren

  Alt 12. Dez 2011, 19:51
Für die Speicherung eines Datum/Zeitwertes sind mir 2 Verfahren bekannt:

1. Float-Wert (u.a. in Delphi benutzt)

1Tag = 24h = 100% = 1.0
12h = 50% = 0.5
etc.

2. Auch ein Float-Wert, aber
Code:
JJJJMMDD.HHNNSSZZZ
Dadurch wird der 12.12.2011 20:46:33.562 zu 20111212.204633562
Ein reiner Zeitwert 20:46:33.562 ist dann 0.204633562
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 - 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