次のような日付文字列を提供するログファイルを使用しています。
09/Feb/2012:00:38:48
MSDN サイトなど、日付の変換に関するオンラインのさまざまなページを見てきましたが、このような日付を示すページはありません。
文字列を次のように手動で再フォーマットする必要がありますか?
2012-02-09T00:38:48.0000000
または、これを実際に変換する方法はありますか?
次のような日付文字列を提供するログファイルを使用しています。
09/Feb/2012:00:38:48
MSDN サイトなど、日付の変換に関するオンラインのさまざまなページを見てきましたが、このような日付を示すページはありません。
文字列を次のように手動で再フォーマットする必要がありますか?
2012-02-09T00:38:48.0000000
または、これを実際に変換する方法はありますか?
DateTime.TryParseExactを使用して、指定した任意の形式から文字列を解析して DateTime にすることができます。このMSDN refの下部に多数の例があります。
AdaTheDevDateTime.TryParseExact
が述べたように、ここで進むべき道です。「カスタムの日付と時刻のフォーマット文字列」に関するMSDNページに従って、省略された月の名前にMMMが必要です。
using System;
using System.Globalization;
class Test
{
static void Main()
{
string text = "09/Feb/2012:00:38:48";
DateTime value;
if (DateTime.TryParseExact(text, "dd/MMM/yyyy:HH:mm:ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out value))
{
Console.WriteLine("Success! {0}", value);
}
else
{
Console.WriteLine("Failed");
}
}
}
の使用に注意してくださいCultureInfo.InvariantCulture
-たとえば、現在のカルチャを使用する必要があるようには見えません。
(もちろん、代わりにNoda Timeを使用することもできます;)