0

日付と時刻を組み合わせて、1つの日時行に挿入する必要があります。

これが私のコードです:

 DateTime Headlinedate;

 try
 {
     DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
     string timestr = DateTime.Now.ToString("hh:mm:ss tt");
     DateTime combinedDate = date.Add(TimeSpan.Parse(timestr));
     Headlinedate = combinedDate;

 }
 catch {
     Headlinedate = DateTime.Now;
 }

例外が発生しています:

入力文字列は、正しい形式ではありませんでした

4

7 に答える 7

4

コードの最初の行でこの例外が発生した場合は、のコンテンツtxtHeadlinedateが有効であることを確認し、それに応じて解析する必要があります。

の呼び出しでエラーが発生した場合はTimeSpan.Parse、次のバージョンで問題が修正されます。

DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
Headlinedate = date.Add(DateTime.Now.TimeOfDay);
于 2013-02-20T07:54:36.137 に答える
2

TimeSpanは「tt」を解析できません。DateTimeを使用して解析するか、代わりにHH:mm形式を使用して24時間の時間値を取得し、形式からtt部分を削除します。その後、TimeSpanはそれを解析できるようになります。例えば:

DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
string timestr = DateTime.Now.ToString("HH:mm:ss");
DateTime combinedDate = date.Add(TimeSpan.Parse(timestr));
Headlinedate = combinedDate;
于 2013-02-20T07:56:41.353 に答える
0

あなたの価値を使用DateTime.TryParseして渡すtxtHeadlinedate.Text.Trim()

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

タイムスパン値を追加するには、次のいずれかを使用します

DateTime myDate = ExistingTime.Date.AddHours(hh).AddMinutes(min);

または//この瞬間から36日後の曜日を計算します(以下のように)

System.DateTime today = System.DateTime.Now; System.TimeSpan duration = new System.TimeSpan(36, 0, 0, 0); System.DateTime answer = today.Add(duration);
于 2013-02-20T08:00:21.623 に答える
0

私はこれがうまくいくはずだと思います

DateTime Headlinedate;
try
         {
             DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
             string timestr = DateTime.Now.ToString("MM/dd/yyyy HH:MM:ss");// here is the solution
             DateTime combinedDate = date.Add(TimeSpan.Parse(timestr));
             Headlinedate = combinedDate;

         }
         catch {
             Headlinedate = DateTime.Now;
         }
于 2013-02-20T08:01:11.030 に答える
0
date.Hour=DateTime.Now.Hour;
date.Minute=DateTime.Now.Minute;
date.Second=DateTime.Now.Second;
于 2013-02-20T07:57:43.010 に答える
-1
DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);    
DateTime combinedDate = new DateTime(date.Year, date.Month, date.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
于 2013-02-20T08:06:29.737 に答える
-1

これはうまくいきます!

DateTime _dateOnly = DateTime.Now;
DateTime _timeOnly = DateTime.Now;

public DateTime Combined { get; set; }

      public DateTime DateOnly
        {
            get { return _dateOnly.Date; }
            set
            {
                _dateOnly = value.Date;
                Combined = DateOnly.Add(TimeOnly.TimeOfDay);
            }
        }

        public DateTime TimeOnly
        {
            get { return _timeOnly.ToLocalTime(); }
            set
            {
                _timeOnly = value.ToLocalTime();
                Combined = DateOnly.Add(TimeOnly.TimeOfDay);
            }
        }
于 2015-12-10T00:29:43.193 に答える