0

2012-06-28T14:30:00-04:00のようなC#の日付を「yyyyMMddTHHmm」形式に変換したいのですが、どちらの日付も文字列です。

string currentDate="2012-06-28T14:30:00-04:00";
string requiredDate="yyyyMMddTHHmm"

Convert.ToDateTime()を使用してこの日付を変換しようとすると、C#は「20120629T0000-04:00」を返しますが、これは正しい日付ではありません。

4

3 に答える 3

2

Standard Date and Time Format Strings (MSDN)を参照してください。インスタンスでToString()メソッドを使用するだけで十分かもしれません。DateTime

おそらく、convert メソッドの適切なオーバーロードでCultureInfo(MSDN here )を指定する必要があるかもしれません。サーバー アプリケーションとクライアント アプリケーションのカルチャやタイムゾーンが異なる可能性があります。

于 2012-06-25T15:41:27.320 に答える
1

DateTime.Parse("2012-06-28T14:30:00-04:00").ToString("yyyyMMddTHHmm")あなたが望むかもしれない価値を生み出します。

値を絶対ISO8601形式からローカルISO8601形式に変更すると、値の意味が変わり、多くの場合、値自体が変わるため、慎重に行う必要があることに注意してください。

次のオプションのどれが本当に必要かを確認してください(そしてそれに応じてコードを調整してください):

  • 値から時間を削除するだけです。値が異なるタイムゾーンからのものである場合、セミランダムな時間が生成されます。
  • 常に値を特定のタイムゾーンに移動し、そのタイムゾーンに対してローカルにします。
  • 常に値を現在のタイムゾーンに移動し、現在のタイムゾーンに対してローカルにします

または多分あなたは完全に何か他のものを探しています。

于 2012-06-25T16:10:54.763 に答える
0

これがあなたが試している形式かどうかわかりません

string currentDate="2012-06-28T14:30:00-04:00";
DateTime.Parse(currentDate).ToString("o")

これはあなたに与えるでしょう2012-06-29T00:00:00.0000000+05:30

于 2012-06-25T15:45:58.100 に答える