いくつかの DateTime 値を string format に変換しようとしていますyyyy-MM-dd
。問題は、日付のみが必要なことですが、私の場合model.StartDate
は日付と時刻の両方が含まれています。model.StartDate を文字列 "start" として宣言すると、次のようになります4/1/2014 12:00:00 AM
。解析しようとすると、次のエラーが表示されます。
System.FormatException はユーザー コードによって処理されませんでした Message=String は有効な DateTime として認識されませんでした。
私の最善の推測は、文字列に日付と時刻の両方が含まれているためにエラーが発生することですが、間違っている可能性があります。model.StartDate をさらに調べると、Day、DayOfTheWeek なども見つかります。これは正しいアプローチですか? model.StartDate
format で文字列「start」に変換したいだけですyyyy-MM-dd
。
私のコードは次のとおりです。
string start = model.StartDate.ToString();
model.StartDate = DateTime.ParseExact(start, "yyyy-MM-dd", CultureInfo.InvariantCulture);
string end = model.EndDate.ToString();
model.EndDate = DateTime.ParseExact(end, "yyyy-MM-dd", CultureInfo.InvariantCulture);
何が問題なのかわかりませんが、開始に時間が含まれている可能性がありますか? 何も思いつきません。
model.StartDate と model.EndDate は、ビュー モデルの DateTime プロパティです。
[NopResourceDisplayName("Admin.GAStatistics.GAStatistics.StartDate")]
[UIHint("DateNullable")]
public DateTime? StartDate { get; set; }
[NopResourceDisplayName("Admin.GAStatistics.GAStatistics.EndDate")]
[UIHint("DateNullable")]
public DateTime? EndDate { get; set; }
編集: デバッガーで取得している実際の出力を示す画像をここにアップロードしました: https://imageshack.com/i/1n51u2p
ありがとうございました