C# - 날짜와 시간

MSDN의 날짜 포맷

  • https://msdn.microsoft.com/en-us/library/az4se3k1.aspx

현재 시간 중에서 시간:분(09:01)으로 얻고 싶을 때

DateTime.Now.ToString("hh:mm") // for non military time
DateTime.Now.ToString("HH:mm") // for military time (24 hour clock)

C#에서 String 형식으로 넘어온 날짜와 시간 데이터를 Datetime 형식으로 형변환 하기

// 출처:http://blog.naver.com/doghole/100117144255
string sDate = “20100127″; string sTime = “16:19″;
// -> DateTime _sdt = DateTime.ParseExact(sDate + ” ” + sTime, “yyyyMMdd H:mm”, null);

string date_string = "201308011121"; // 2013.08.01 11:21
DateTime date = DateTime.ParseExact(date_string, "yyyyMMddHHmm", null);

두 날짜 사이의 시간 간격 구하기

// 출처:http://blog.naver.com/doghole/100117144255
TimeSpan tDiff = _edt.Subtract(_sdt);
if (tDiff.TotalHours > 1)
   Console.Write(”두 날짜 사이의 시간 간격이 1시간을 넘어 갑니다.”);

특정일에서 특정일 더하거나 빼거나 해서 날짜 구하는 법

// 출처:http://blog.naver.com/doghole/100117144255
// 오늘을 기준으로
// 30일 더하는 방법 :
DateTime.Today.AddDays(30).ToString("yyyyMMdd");
//30일 빼는 방법 :
DateTime.Today.AddDays(-30).ToString("yyyyMMdd");

시간 포맷

// 20130530094611 ( 2013년 5월30일 오전 9시 46분 11초)
string reqData = DateTime.Now.ToString("yyyyMMddHHmss");

다른 포맷은 여기 참조 http://wizcody.egloos.com/2471287

현재까지의 tick 시간

  • DateTime.Now.Ticks

tick 단위

  • 10000 tick == 1 밀리세컨드
  • 10000000 tick = 1 초

현재까지의 시간, 분

  • TimeSpan을 사용하면 된다.
var curTimeSec = new TimeSpan(DateTime.Now.Ticks).TotalSeconds;
var curTimeMinu = new TimeSpan(DateTime.Now.Ticks).TotalMiniuts;

지정한 시간을 지났는지 조사

public bool CheckTime(Int64 checkTick, Int64 curTick, Int64 timeTick)
{
    var spanTick = curTick - checkTick;

    if (spanTick >= timeTick)
    {
        return true;
    }

    return false;
}

(기간)날짜를 tick으로 변환

public Int64 DayToTick(int day)
{
    var tick = new TimeSpan(day, 0, 0, 0).Ticks;
    return tick
}

Tick을 초, 나노 초로 변환

const Int64 TicksPerMicrosecond = 10;
Int64 sec = (Int64)(curTimeTick / TimeSpan.TicksPerSecond);
Int64 nanoSec = (Int64)(curTimeTick / TicksPerMicrosecond);

FILETIME to DateTime

long hFTa = (((long)a.dwHighDateTime) << 32) + b.dwLowDateTime;
var a_datetime = DateTime.FromFileTime(hFTa);

참고


이 글은 2019-03-21에 작성되었습니다.