2011-08-20 11 views
0

ここにsite文字列をdateTimeに変換

非常に奇妙です。

 DateTime a = DateTime.Parse("5/26/2011"); 
     Response.Write(a.ToShortDateString()); 

このコードはlocalhostで正常に動作します。ホスト上の

しかししかししかし

はエラーを言う:

文字列は有効な日時として認識されませんでした。あなたはDateTime.ParseExact()を使用する必要があり、このsite

+1

をウェブサイトのサーバー用に設定文化は何ですか? – Yuck

+0

これはサーバーの別のロケールで、指定されたフォーマット – Sorantis

+0

をWebからの収入から確かめることができないため、 "day"、 "month"、 "year"を特定してから、このコンストラクタhttp:// msdn Microsoft.com/es-es/library/xcfzdy4x.aspx –

答えて

4

、それはあなたがあなたの文化や形式を指定することができます。ここで

InvariantCultureを使った例です:

DateTime dateTime = DateTime.ParseExact("5/26/2011", 
             "MM/dd/yyyy", 
             CultureInfo.InvariantCulture); 

そしてここでは、具体的en-USを使用しています一つだ:

DateTime dateTime = DateTime.ParseExact("5/26/2011", 
            "MM/dd/yyyy", 
            CultureInfo.CreateSpecificCulture("en-US")); 

the MSDN docsを見てみましょう。

+0

何故?????????? – ddddddd

+1

@ddddddd:実際に文書を読んだことはありますか? –

+0

+1:私は、フォーマットを指定することは、常に*常に*良い考えだと思います。 –

1

これは文化依存のエラーです。ただ、parse方法に右の文化を渡す:

DateTime a = DateTime.Parse("5/26/2011", CultureInfo.CreateSpecificCulture("en-US")); 
0

だけでウエッとSorantisのコメントあらためて表明する:

static void Main(string[] args) 
{ 
    foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures)) 
    { 
     try 
     { 
      DateTime.Parse("5/26/2011", ci); 
      Console.WriteLine(String.Format("Able to parse with {0} CultureInfo object.", ci)); 
     } 
     catch 
     { 
      Console.WriteLine(String.Format("Unable to parse with {0} CultureInfo object.", ci)); 
     } 
    } 
    Console.ReadLine(); 
} 
関連する問題