0

要素内の XML 構成ファイルから文字列を読み取り、それらを日時に変換して日時ピッカー コントロールに入れています。

XML ファイル内の値は次のとおりです。

<config>
  <Triggers>
    <CalendarTrigger>
      <Start>2012-07-02T18:00:00</Start>
      <Next>2013-10-22T10:40:00</Next>
      <Last>2013-10-01T18:00:00</Last>
      <Result>Success</Result>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        ... and so on...

以下のコードを使用して、文字列値を datetimepicker コントロールの日付に変換しています。

CalendarTrigger[0] = (result.Element("Next").Value != "") ? Convert.ToDateTime(result.Element("Next").Value).ToString("dd/MM/yyyy HH:mm:ss") : DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
dScanDate.Value = Convert.ToDateTime(CalendarTrigger[0]);
dScanTime.Value = Convert.ToDateTime(CalendarTrigger[0]);

残念ながら、コードは値を正しくCalendarTrigger[0](CalendarTrigger[0] = "22/10/2013 10:40:00") に読み込んでいますが、文字列が有効な DateTime として認識されませんでした。エラー。

私は何を間違っていますか?

4

3 に答える 3

1

試す

string timeString = "23/10/2013 10:40:00";
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime dateVal = DateTime.ParseExact(timeString, "dd/MM/yyyy HH:mm:ss", culture);

または単に InvariantCulture を使用する

string timeString = "23/10/2013 10:40:00"
DateTime dateVal = DateTime.ParseExact(timeString, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
于 2013-10-22T09:46:05.827 に答える
1

たぶん、あなたのカスタムフォーマットを設定してみてくださいDateTimePicker:

dateTimePicker.CustomFormat = "dd/MM/yyyy HH:mm:ss";
dateTimePicker.Format = DateTimePickerFormat.Custom;
于 2013-10-22T09:44:32.943 に答える
0

答えが見つかりました。日時変換に間違った形式を使用していました

そのはず

CalendarTrigger[0] = (result.Element("Next").Value != "") ? Convert.ToDateTime(result.Element("Next").Value).ToString("MM/dd/yyyy HH:mm:ss") :DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");
于 2013-10-22T09:46:34.477 に答える