program tip

오늘 시간을 자정으로 설정하는 방법은 무엇입니까?

radiobox 2020. 12. 11. 08:00
반응형

오늘 시간을 자정으로 설정하는 방법은 무엇입니까?


mvc3 응용 프로그램에서 nullable이 아닌 datetime을 만들 때마다 기본값은 now ()이며, 여기서 now는 현재 날짜와 현재 시간입니다. 시간을 오전 12 시로하는 오늘 날짜로 기본 설정하고 싶습니다.

내 mvc에서 시간을 기본값으로 설정하려고하지만 ... 다음은 오늘 날짜 @ 12am으로 설정되어 있지 않습니다. 대신 현재 날짜 및 시간을 사용하는 기본값이 now로 설정됩니다.

private DateTime _Begin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0);
public DateTime Begin { get { return _Begin; } set { _Begin = value; } } 

nullable이 아닌 datetime의 현재 날짜를 오전 12 시로 설정하려면 어떻게해야합니까?


DateDateTime 개체 속성을 사용할 수 있습니다.

DateTime midnight = DateTime.Now.Date;

따라서 코드 예제는

private DateTime _Begin = DateTime.Now.Date;
public DateTime Begin { get { return _Begin; } set { _Begin = value; } }

추신. 원래 코드로 돌아가서 시간을 12로 설정하면 오늘 정오 시간이 제공 되므로 대신 0 ...

var now = DateTime.Now;
new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);

나는 당신이 찾고 있다고 믿습니다 DateTime.Today. 문서는 다음과 같이 설명합니다.

시간 구성 요소가 00:00:00으로 설정된 오늘 날짜로 설정된 개체입니다.

http://msdn.microsoft.com/en-us/library/system.datetime.today.aspx

귀하의 코드는

DateTime _Begin = DateTime.Today;

위의 권장 사항 중 일부를 사용하면 다음 함수 및 코드가 날짜 범위 검색에 작동합니다.

시간 구성 요소를 00:00:00으로 설정하여 날짜 설정

public static DateTime GetDateZeroTime(DateTime date)
{
    return new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
}

용법

var modifieddatebegin = Tools.Utilities.GetDateZeroTime(form.modifieddatebegin);

var modifieddateend = Tools.Utilities.GetDateZeroTime(form.modifieddateend.AddDays(1));

설정하기 만하면됩니다.

DateTime.Now.Date

Console.WriteLine(DateTime.Now.Date.ToString("yyyy-MM-dd HH:mm:ss"));
Console.Read();

이것은 보여준다

'2017-04-08 00:00:00'

내 컴퓨터에서.


대부분의 제안 된 솔루션은 각 날짜와 관련된 시간에 따라 1 일 오류를 일으킬 수 있습니다. 각 날짜와 관련된 시간에 관계없이 to date 사이의 정수 일 수를 찾고 있다면 이것이 잘 작동한다는 것을 알았습니다.

return (dateOne.Value.Date - dateTwo.Value.Date).Days;

관련이 있으므로 다른 사람을 위해 게시 할 것이라고 생각했습니다. 오늘 시작의 UTC (시간대)를 찾으려면 다음 코드가 모든 UTC 오프셋 (-23.5에서 +23.5까지)에 대해 작동합니다. 이것은 우리가 X 시간을 더한 다음 X 시간을 빼는 것처럼 보이지만 중요한 것은 더한 후 ".Date"입니다.

double utcOffset= 10.0;  // Set to your UTC offset in hours (eg. Melbourne Australia)
var now = DateTime.UtcNow;

var startOfToday = now.AddHours(utcOffset - 24.0).Date;
startOfToday = startOfToday.AddHours(24.0 - utcOffset);

이 시도:

DateTime Date = DateTime.Now.AddHours(-DateTime.Now.Hour).AddMinutes(-DateTime.Now.Minute)
   .AddSeconds(-DateTime.Now.Second);

출력은 다음과 같습니다.

2015 년 7 월 29 일 00:00:00

참고 URL : https://stackoverflow.com/questions/13467230/how-to-set-time-to-midnight-for-current-day

반응형