2016-04-05 21 views
-1

この形式の日付の文字列があります。 "24-11-2015"または "dd-MM-yyyy"これをこの形式の日付に変換する必要があります。 "2015-11-24"または "yyyy-MM-dd" 私はいくつかの方法を試してきましたが、そのすべてが私のシステムフォーマットに依存して動作しています。私は英語の時間形式のコンピュータで私のプログラムを実行する場合、これは動作します。文字列を日付形式(VB.net)に変換する

Date.ParseExact("24-11-2015", "dd-MM-yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo) 

しかし、デンマーク語の形式を実行しているコンピュータで実行すると、24ヶ月もないためエラーになります。私はどのように私のシステムの時刻形式から独立した日付形式を作るのですか?

+0

日付時間変数にはフォーマットがありません。それらを 'フォーマット'にする文字列としての表現です。あなたが日付を表す文字列を持っていて、それをDateTime変数に解析したい場合や、DateTime変数があり、それを特定の方法で表示したい場合は、あなたの質問からは明らかではありません – Steve

+0

また、これがデスクトップアプリケーションの場合TryParseは、現在のカルチャで使用されているすべての可能なフォーマットをテストするために使用でき、いくつかの文化は100を超えています。 – Plutonix

+0

ユーザが完全な文字列を直接入力することができれば、困っています。システムはm-d-yyyyとd-m-yyyyの違いを確実に知ることはできません。別のフィールドまたは日付ピッカーを使用する必要があります。 – rheitzman

答えて

1

ソリューション:

Dim dateTime As String = "24-11-2015" 
Dim dt As DateTime = Convert.ToDateTime(dateTime) 
Console.WriteLine("{0}-{1}-{2}", dt.Year, dt.Month.ToString("D2"), dt.Day.ToString("D2")) 

解決方法2:

Dim dateTime As String = "24-11-2015" 
Dim dt As DateTime = Convert.ToDateTime(dateTime) 
Dim format As String = "yyyy-MM-dd" 
Dim str As String = dt.ToString(format) 
Console.WriteLine(str) 

またFormatting Date and Time for a Specific Cultureを試すことができます。

関連する問題