Re: Zeitzonen und Benutzerdefinierte Formate --- Problem
- From: "Armin Zingler" <az.nospam@xxxxxxxxxx>
- Date: Thu, 25 Jan 2007 17:18:29 +0100
"Manfred Büttner" <manbuettner@xxxxxxxxxxx> schrieb
Hallo,
nachdem ich meine Software umgestellt habe, damit sowohl in
Deutschland und USA gleichermaßen die Datumsabfrage funktioniert,
die als Ausgangsbasis aber in Deutsch sein muss, habe ich Probleme,
die Benutzerspezifischen Formate abzufangen und wäre über einen Tipp
sehr froh.
Stehen die Regions und Sprachoptionen auf Datum, kurz: TT.MM.JJJJ
oder T.M.JJ dann klappt alles wunderbar.
sind diese allerdings auf JJJJ-MM-TT erhalte ich...
"Die Zeichenfolge wurde nicht als gültiges DateTime erkannt."
Wie kann ich dafür sorgen, dass das Datum korrekt Formatiert wird?
sub test
dim INI_MaintenanceDate as String = "25.11.2005"
ConvertDateTimeToCulture(INI_MaintenanceDate,
System.Globalization.CultureInfo.CurrentCulture.Name, "de-DE")
end sub
Public Function ConvertDateTimeToCulture(ByVal sDateTime As String,
_
ByVal NameInputCulture As String, _
ByVal NameOutputCulture As String) As String
Dim InputCulture = New
System.Globalization.CultureInfo(NameInputCulture)
Dim OutputtCulture As CultureInfo = _
CultureInfo.CreateSpecificCulture(NameOutputCulture)
Dim oCurrentCulture As CultureInfo = _
System.Globalization.CultureInfo.CurrentCulture
' Culture des Threads entsprechend des Eingabe-Datums einstellen
Thread.CurrentThread.CurrentCulture = InputCulture
Dim temp As DateTime = DateTime.Parse(sDateTime, _
InputCulture, DateTimeStyles.NoCurrentDateDefault)
Thread.CurrentThread.CurrentCulture = OutputtCulture
' Umgewandelte DateTime als String zurückgeben
ConvertDateTimeToCulture = temp.ToString
ConvertDateTimeToCulture =
DateSerial(Year(ConvertDateTimeToCulture),
Month(ConvertDateTimeToCulture),
Microsoft.VisualBasic.DateAndTime.Day(ConvertDateTimeToCulture))
' Culture des Threads wieder zurückstellen
' (sonst würde das Programm weiter mit der OutputCulture laufen)
Thread.CurrentThread.CurrentCulture = oCurrentCulture
End Function
Ganz habe ich Dein Vorhaben nicht verstanden, aber...
Ich würde erst mal Option Strict aktivieren. Der Rest ergibt sich von
selbst. Wenn man sich Gedanken über die Konvertierungen macht, statt
implizit ungewünschte Konvertierungen zuzulassen, dann behebt das den einen
oder anderen Fehler.
Generell gilt, dass Datumsangaben intern als Date gespeichert werden sollen.
Wenn du wirklich einen Datumsstring von einem Format ins andere konvertieren
willst:
Public Function ConvertDateTimestring( _
ByVal sDateTime As String, _
ByVal NameInputCulture As String, _
ByVal NameOutputCulture As String) As String
Dim inputCulture, outputCulture As CultureInfo
Dim d As Date
inputCulture = New CultureInfo(NameInputCulture)
outputCulture = New CultureInfo(NameOutputCulture)
d = DateTime.Parse(sDateTime, inputCulture.DateTimeFormat)
Return d.ToString(outputCulture.DateTimeFormat)
End Function
Beschreibe aber doch nochmal, wo du mit dem Parsen/Formatieren/Konvertieren ein Problem hast.
Armin
.
- Follow-Ups:
- Re: Zeitzonen und Benutzerdefinierte Formate --- Problem
- From: Manfred Büttner
- Re: Zeitzonen und Benutzerdefinierte Formate --- Problem
- From: Manfred Büttner
- Re: Zeitzonen und Benutzerdefinierte Formate --- Problem
- References:
- Zeitzonen und Benutzerdefinierte Formate --- Problem
- From: Manfred Büttner
- Zeitzonen und Benutzerdefinierte Formate --- Problem
- Prev by Date: Zeitzonen und Benutzerdefinierte Formate --- Problem
- Next by Date: Re: Zeitzonen und Benutzerdefinierte Formate --- Problem
- Previous by thread: Zeitzonen und Benutzerdefinierte Formate --- Problem
- Next by thread: Re: Zeitzonen und Benutzerdefinierte Formate --- Problem
- Index(es):
Relevant Pages
|