TimeSpan에서 DateTime으로 변환
Timespan을 Datetime으로 변환하고 싶습니다. 어떻게 할 수 있습니까?
Google에서 한 가지 방법을 찾았습니다.
DateTime dt;
TimeSpan ts="XXX";
//We can covnert 'ts' to 'dt' like this:
dt= Convert.ToDateTime(ts.ToString());
이 작업을 수행하는 다른 방법이 있습니까?
TimeSpan을 DateTime으로 변환하는 것은 그다지 논리적이지 않습니다. leppie가 위에서 말한 것을 이해하려고 노력하십시오. TimeSpan은 6 일 5 시간 40 분이라는 기간입니다. 데이트가 아닙니다. 6 일이라고하면 그것으로부터 날짜를 추론 할 수 있습니까? REFERENCE Date가 없으면 대답은 아니요입니다.
따라서 TimeSpan을 DateTime으로 변환하려면 참조 날짜가 필요합니다. 언제부터 6 일 5 시간? 따라서 다음과 같이 작성할 수 있습니다.
DateTime dt = new DateTime(2012, 01, 01);
TimeSpan ts = new TimeSpan(1, 0, 0, 0, 0);
dt = dt + ts;
선택한 답변이 엄격히 정확하지만 비슷한 문제가 있었기 때문에 OP가 여기서 얻으려고하는 것을 이해한다고 생각합니다.
그리드 컨트롤에 표시하려는 TimeSpan이 있었지만 (hh : mm처럼) 그리드가 TimeSpan을 이해하는 것처럼 보이지 않았고 DateTime 만 이해했습니다. OP에는 TimeSpan 만 관련 부분이지만 DateTime 참조 지점을 추가 할 필요성을 고려하지 않은 유사한 시나리오가 있습니다.
따라서 위에 표시된대로 결과 날짜의 시간 부분으로 시간 범위를 렌더링 할 때 그리드에서 이후에 무시되는 DateTime.MinValue를 추가했습니다 (날짜는 상관 없음).
이를 위해 TimeSpan을 새로운 DateTime에 추가 할 수 있습니다.
TimeSpan ts="XXX";
DateTime dt = new DateTime() + ts;
그러나 앞서 언급했듯이 유효한 시작 날짜 없이는 엄격하게 논리적이지 않습니다. 시간 측면 만 필요한 사용 사례를 접했습니다. 논리가 정확하면 잘 작동합니다.
유용하게 사용하려면 참조 날짜가 필요합니다.
http://msdn.microsoft.com/en-us/library/system.datetime.add.aspx 의 예
// Calculate what day of the week is 36 days from this instant.
System.DateTime today = System.DateTime.Now;
System.TimeSpan duration = new System.TimeSpan(36, 0, 0, 0);
System.DateTime answer = today.Add(duration);
System.Console.WriteLine("{0:dddd}", answer);
var StartTime = new DateTime(item.StartTime.Ticks);
데이터 그리드 또는 유사한 레이블에 시간 값만 표시해야하는 경우 가장 좋은 방법은 datetime 데이터 유형에서 시간을 직접 변환하는 것입니다.
CONVERT (datetime, myTimeField)를 Table1에서 myTimeField로 선택합니다.
dateTime.FromFileTime (finishTime)을 사용할 수도 있습니다. 여기서 finishTme는 시간의 눈금을 포함하는 long입니다. 또는 FromFileTimeUtc.
쉬운 방법은 진드기를 사용하는 것입니다.
new DateTime((DateTime.Now - DateTime.Now.AddHours(-1.55)).Ticks).ToString("HH:mm:ss:fff")
이 기능은 날짜를 제공합니다 (일 / 월 / 년 제외).
위의 모든 문제는 변환이 시간대에 지정된 잘못된 일수를 반환한다는 것입니다.
위를 사용하면 아래는 2가 아닌 3을 반환합니다.
TimeSpan 인수에서 2 일을 보존하고이를 DateTime day로 반환하는 방법에 대한 아이디어?
public void should_return_totaldays()
{
_ts = new TimeSpan(2, 1, 30, 10);
var format = "dd";
var returnedVal = _ts.ToString(format);
Assert.That(returnedVal, Is.EqualTo("2")); //returns 3 not 2
}
먼저 시간 범위를 문자열로 변환 한 다음 DateTime으로 변환 한 다음 다시 문자열로 변환합니다.
Convert.ToDateTime(timespan.SelectedTime.ToString()).ToShortTimeString();
참고 URL : https://stackoverflow.com/questions/10276228/timespan-to-datetime-conversion
'Programing' 카테고리의 다른 글
mvnrepository.com의 maven 프로필을 알고 있습니까? (0) | 2020.12.11 |
---|---|
최대 절전 모드에서 Postgres 연결 획득 속도가 느림 (0) | 2020.12.11 |
Xcode-XIB를 ViewController 클래스에 연결하는 방법 (0) | 2020.12.11 |
Windows (7)에서 Java Runtime 버전을 어떻게 변경할 수 있습니까? (0) | 2020.12.10 |
jquery .live ( 'click') 대 .click () (0) | 2020.12.10 |