답변
아니 었 :
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;
}
나는 예외를 받고 있어요 코드 행을 사용하려면 txtHeadlinedate
의 내용이 유효한지 확인하고 그에 따라 구문 분석해야합니다. 오류가 TimeSpan.Parse
에 대한 호출에서 오는 경우
, 다음 버전은 문제를 해결해야합니다
DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
Headlinedate = date.Add(DateTime.Now.TimeOfDay);
고마워, 그것을 작동합니다 :) – Mandragorasprout
첫 번째 줄 (텍스트 문자열의 변환)에서 시간 구성 요소를 절대 얻지 않으려면 '. 날짜'를 첫 번째 줄 끝에 추가 할 수 있습니다. –
타임 스팬은 "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;
"now"를 시간 문자열로 변환 한 다음 다시 문자열을 'TimeSpan'으로 변환 할 필요는 없습니다. –
오른쪽은 ybo의 대답과 본질적으로 같습니다. 감사. – dotNET
date.Hour=DateTime.Now.Hour;
date.Minute=DateTime.Now.Minute;
date.Second=DateTime.Now.Second;
그것은 오히려 가난한 답변 왜 한 단계에서 할 수있는 3 단계를하고 있습니까? – MethodMan
그리고 이것은 ..이 질문과 관련이 있습니다 ..? –
먼저 'Now'속성을 두 번 이상 읽지 마십시오. 시계가 바뀔 수 있으므로 첫 번째 부분을 읽을 때 '09 : 59 : 59'이고 마지막 부분을 읽을 때 '10 : 00 : 00'이면 '09 : 00 : 00' 진정한 "지금"과는 거리가 멀다. 또한'date' 식별자가'DateTime' 값으로되어 있다면, 그렇게하는 것처럼 그것을 변경할 수 있습니다. 해당 속성은'get' 전용 (설정자 없음)입니다. Downvoted. –
사용 DateTime.TryParse
및 통과하여 txtHeadlinedate.Text.Trim()
값
DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime)
그리고 시간 범위 값을 추가 중 하나 어떤 일
DateTime myDate = ExistingTime.Date.AddHours(hh).AddMinutes(min);
또는 // 계산을 사용하여 이 주간은이 순간부터 36 일입니다. t.
System.DateTime today = System.DateTime.Now; System.TimeSpan duration = new System.TimeSpan(36, 0, 0, 0); System.DateTime answer = today.Add(duration);
내가이이 작동
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;
}
분 동안 ""MM "'을 사용하지 마십시오. _months_입니다. 'Now'의 날짜 부분을 가져 오는 것이 목적이 아니 었습니다. ToString을 사용할 필요는 없습니다. –
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);
작동합니다 생각 (아래처럼)!
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);
}
}
디버깅 할 때 '날짜'형식은 무엇입니까? –
문자열에서 'TimeSpan'을 (를) 파싱하는 대신'DateTime combinedDate = date.Add (DateTime.Now.TimeOfDay); – Habib