0

(2012-10-10T 11:07:58:75 05:30)から(10/10/2012)までの日付を取得する方法。助けて。

4

2 に答える 2

1

DateTimeOffset実際に取得したすべてのデータを表すために、を解析する必要があるように見えます。

string text = "2012-10-10T11:07:58+05:30";
DateTimeOffset dto = DateTimeOffset.ParseExact
    (text, "yyyy'-'MM'-'dd'T'HH':'mm':'sszzz",
     CultureInfo.InvariantCulture);

これは、入力文字列の最後の「:75」が実際には間違いであったことを前提としています。それは非常に奇妙なフォーマットです。それが間違いではなかった場合は、次のことをお勧めします。

string text = "2012-10-10T11:07:58:75+05:30";
DateTimeOffset dto = DateTimeOffset.ParseExact
    (text, "yyyy'-'MM'-'dd'T'HH':'mm':'ss':'FFFzzz",
     CultureInfo.InvariantCulture);

これは、サブミリ秒の範囲で小数点以下3桁までを処理します。それ以上ある場合は、パターンを最大7F文字まで拡張できます。

日付を取得する場合は、実際に現地の日付が必要か、UTCに変換した後の日付が必要かを判断する必要があります。これはビジネス要件によって異なりますが、その影響に注意してください。(同じ現地日付の2つの値は、同じ24時間の期間を表していない場合があります。)

次に、値を別の形式の文字列として再度必要とする場合は、を呼び出す2番目の手順で値をフォーマットする必要がありますToString。同じ日と月の値を持つサンプルを考えると、残念ながら、必要かどうかはわかりませんMM/dd/yyyydd/MM/yyyy、これが文化に敏感であるかどうかを実際に検討する必要があります。この値をどのように使用しているかについて、より多くのコンテキストを提供していただければ、より多くの提案を提供できます。

于 2012-10-12T06:07:19.393 に答える
1

Frist : DateTime.ParseExact 、"(2012-10-10T 11:07:58:75 05:30" のような文字列を DateTime 構造体 ---var に変換します。

および d.tostring("あなたのフォーマット")

于 2012-10-10T09:44:57.173 に答える