시간 관련 변환 방법

2020. 12. 16. 20:00·사소한 아이의 소소한 스킬/C#
반응형

개발중에 서로 통신을 할때 시간값이 필요할때가 있다.

 

NTP서버나 GPS를 통해 실시간으로 동기화해서 사용하는 방법도 있지만

 

장비들이 고가이다 보니... 그렇게도 못할때가 있다.

 

그럴땐 뭐 window 자체의 시간 동기화 방법을 써도 상관없지만.......

 

아무튼 TCP나 UDP등 데이터 전송 시 datetime 정보를 같이 전달하여 시간을 확인하는 방법을 많이 확인하는데

 

나 같은 경우에는 C#의 Datetime 변수를 이용하기에 DateTime의 tick정보를 가져와서 8 byte long으로 변환하여 데이터를 전달한다.

 

하지만 이부분도 C#이면 괜찮지만 C로 전달할 시는 해당 부분이 다르다.. C의 경우 유닉스 타임(1970-01-01 00:00:00)을 기준으로 가져오기에 C#의 tick(0000-01-01 00:00:00)과는 다르다.

(참고 : 유닉스 시간 확인하기 https://time.is/ko/Unix_time_now )

 

그렇기에 C와 C#이 서로 연동한다면 유닉스 기본값의 시간에 해당되는 데이터를 더하거나 빼야하는 과정이 필요하다

유닉스 기본값의 경우 621355968000000000 이 값으로 대신 가능하다.

 

C에서 C#으로 전달 시 C#에서 유닉스 기본값을 더해준 후 DateTime.parsing 과정이 필요하며

 

C#에서 C로 전달 시 C에서 유닉스 기본값을 빼준 후 Datetime.parsing 과정이 필요하다.

 

해당 방법은 추후에 소스를 좀 짜서 포스팅을 해야겠다.

 

일단 기본적인 방안은 위와 같으며, 실제 구현 시에도 저 유닉스 시간에 해당하는 데이터만 알고 있다면 쉽게 구현 가능하다

 

반응형
'사소한 아이의 소소한 스킬/C#' 카테고리의 다른 글
  • 001. Thread Safe
  • Dictionary 정렬방법
  • Unity에서 싱글톤 생성방법
  • WPF에서 Office가 깔려있는지 확인하는 코드
JOOJI
JOOJI
그냥 혼자좋아하는 것들 남기는 블로그....
  • JOOJI
    사소한프로그래머의 소소한행복
    JOOJI
  • 전체
    오늘
    어제
    • 분류 전체보기 (956) N
      • 사소한 아이의 소소한 일상 (245)
      • 사소한 아이의 소소한 먹거리 (43)
      • 사소한 아이의 소소한 정보 (75) N
      • 사소한 아이의 소소한 감사 (4)
      • 사소한 아이의 소소한 운동 (58) N
      • 사소한 아이의 소소한 여행 (40)
        • 2013_전주 (1)
        • 2014_독일 (13)
        • 2014_군산 (1)
        • 2015_제주도 (3)
        • 2015_서울모토쇼 (3)
        • 2015_진해 (1)
        • 2015_전주 (1)
        • 2016_여수 (1)
        • 2020_강릉 (1)
        • 2022_제주도 (4)
      • 사소한 아이의 소소한 강짱 (22)
        • 하트투하트 (10)
        • MAPS (1)
        • 화려한 유혹 (2)
        • 한여름의 추억 (2)
      • 사소한 아이의 TV (50)
        • Drama (9)
        • 예능 (32)
        • 사소한 아이의 다현 (9)
      • 사소한 아이의 소소한 스킬 (130)
        • Scaleform (2)
        • C# (74)
        • QT (3)
        • 알고리즘 (4)
        • Python (21)
        • PyQT5 (9)
        • C_C++ (2)
      • 사소한 아이의 소소한 축구 (283)
        • Korea (25)
        • Germany (45)
        • Bayern Munich (64)
        • Soccer_ETC (75)
        • Euro 2016 (12)
        • 친선경기 (3)
      • 사소한 아이의 소소한 생활정보 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
    • 관리
  • 링크

    • 독일여행
    • 레바티스토리
    • 프라치노 공간
    • 남성패션꿀템 블로그
  • 공지사항

  • 인기 글

  • 태그

    c#
    독일
    회사밥
    WPF
    뮌헨
    python
    러닝
    문제
    바이에른 뮌헨
    분데스리가
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JOOJI
시간 관련 변환 방법
상단으로

티스토리툴바