날짜-시간 C #에서 시간 만 얻는 방법 [닫기]


144

값이 2009 년 6 월 22 일 오전 10:00:00이라고 가정합니다. 이 날짜 시간부터 오전 10 시만 받으려면 어떻게해야합니까?


15
이것은 문자열입니까 아니면 DateTime입니까?
콜린 버넷

답변:


202

이에 대한 많은 옵션이 있습니다.

DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM");

dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits
dt.ToString("H:mm"); // 7:00 // 24 hour clock
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock

유용한 링크 : DateTime.ToString () 패턴


16
@MetroSmurf-OP는 물론 그가하고 싶은 일을 분명하지 않습니다. 내 애완 동물 증오 중 하나는 일찍 문자열로 이동하는 것입니다. 나는 모든 것을 줄로 바꾸는 동료를 가졌습니다. 심지어 두 배도됩니다. 우연히 일어나는 사고입니다. 객체를 사람에게 표시하려고 할 때까지 객체를 문자열로 변환하지 마십시오. 그때까지 물건을 붙입니다.
paul

1
빠른 참조를 위해, sss
앞에

지금까지 가장 좋은 답변
Tk1993

76

에서 DateTime사용할 수 .TimeOfDay있지만- TimeSpan하루의 시간 (10 시간)을 나타냅니다.


또는 ToString ( "format codes")에서 Formatting이있는 특수한 경우
kenny

61

C #에는 DateTime 형식 만 있으며 날짜 및 시간 부분으로 구성됩니다. DateTime의 Date 부분에 신경 쓰지 않으면 다음과 같이 기본값으로 설정하십시오.

DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)

이렇게하면 Microsoft가 기준 날짜를 1/1/0001 이외의 것으로 변경하기로 결정하더라도 모든 .NET 버전에서 일관성을 유지할 수 있습니다.


19
이것이 정답입니다. 문제는 DateTime에서 시간을 추출하여 문자열로 형식화하지 않는 것이 었습니다.
ASalazar

특히 "C #에서"가 아니라 ".NET에서"입니다.
rory.ap

22

DateTime.ToShortTimeString () 메서드 를 살펴볼 수 있습니다 .

또한 DateTime 개체에는 원하는 방식으로 날짜 또는 시간의 서식을 지정하는 데 도움이되는 다른 많은 메서드와 속성 이 있습니다. 설명서를 살펴보십시오.


+1 시간 출력 현지화가 필요한 국제 환경에서 실행중인 경우 현재 시스템이 설정 한 형식으로 시간을 반환하므로 가장 깨끗한 솔루션입니다.
aggaton


6

여러 가지 방법이 있습니다. DateTime.Now.ToLongTimeString()문자열 형식으로 시간 만 반환 하는 which 를 사용할 수 있습니다 .


당신은 아마 DateTime.ToLongTimeString()오히려 의미했다 DateTime.Now.ToLongTimeString(). 이 스레드의 수명이 주어지면 응답이 이전 답변보다 크게 개선되지 않는 한 다시 재생하지 않는 것이 가장 좋습니다.
Leigh

5

간단히 쓸 수 있습니다

string time = dateTimeObect.ToString("HH:mm");

4
이것은 4 년 전에 이미 제출 된 것에 전혀 아무것도 추가하지 않습니다!
paul

5

이것을 사용할 수 있습니다

lblTime.Text = DateTime.Now.TimeOfDay.ToString(); 

밀리 초 값으로 실시간이며 시간으로 만 설정됩니다.


TimeOfDay는 좋은 방법이지만 몇 초가 걸리므로 표준 유형으로 시간을 형식화해야합니다.
sajadre 2018 년

5
DateTime now = DateTime.Now;

now.ToLongDateString();    // Wednesday, January 2, 2019
now.ToLongTimeString();    // 2:33:59 PM
now.ToShortDateString();   // 1/2/2019
now.ToShortTimeString();   // 2:16 PM
now.ToString();            // 1/2/2019 2:33:59 PM

4

이것은 나를 위해 작동합니다. 날짜 부분 만 가져 오기 위해 DateTime.Date와 함께 작업해야 할 때 발견했습니다.

var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM");
var time = wholeDate - wholeDate.Date;

3

ToString("T")장시간 또는 ToString("t")단시간에 사용할 수 있습니다 .


2

gridview를 사용하는 경우 DataFormatString="{0:t}" 예 를 들어 시간 만 표시 할 수 있습니다 .

    By bind the value:-
<asp:Label ID="lblreg" runat="server" Text='<%#Eval("Registration_Time ", "{0:t}") %>'></asp:Label>

By bound filed:-
<asp:BoundField DataField=" Registration_Time" HeaderText="Brithday" SortExpression=" Registration Time " DataFormatString="{0:t}"/>

1

날짜가 아닌 시간을 비교하려는 경우 표준 비교 날짜를 사용하거나 다음과 같이 사용중인 날짜와 일치시킬 수 있습니다.

DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);

더 좋은 방법이있을 수 있지만 날짜는 일치시킵니다.


1

DateTime Kind도 설명해야합니다.

public static DateTime GetTime(this DateTime d)
{
    return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}

이 질문에 대답 할 필요는 없습니다. 그것은 9 년 전에 물었습니다. 또한이 질문에 대한 많은 좋은 답변이 이미 있습니다.
benshabatnoam

당신은 시간을 반환하지 않습니다. 당신은 당신의 답변을 검토해야합니다
Yepeekai

@Yepeekai .NET에는 Time 클래스가 없습니다. 따라서 Date 부분이없는 DateTime 인스턴스는 수행 할 수있는 옵션 중 하나입니다. 문자열을 반환 할 수도 있지만 DateTime 작업에서 문자열을 사용할 수 있습니다. TimeSpan도 고려할 수 있다고 생각합니다.
user3720899

"새로운 DateTime (d.TimeOfDay.Ticks)"는 지금까지 가장 깨끗한 답변입니다
Fabianus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.