C언어로 시간정보를 파싱하는 편한 방법이 있나요?
글쓴이: shamlock / 작성시간: 월, 2009/05/04 - 1:56오전
아래와 같은 문자열로 된 시간정보가 있는데요
2008-03-12T20:21:45.000Z
끝에 000Z에서 Z는 뭘 의미하는것인가요?
또 중간에 있는 글자 T는 뭘의미하는지 설명좀 부탁드립니다.
참고 URL이라도 감사드리겠습니다.
시간과 관련해서 뭔가 복잡한 내용이 있나보네요
C언어로는 time() 하고 gettimeofday() 밖에 안써봐서 ㅠㅠ
혹시 ... 저 시간정보를 제가 직접 문자열 파싱해야 하는 것인가요?
Forums:
ISO 8601에 날짜/시간
ISO 8601에 날짜/시간 표기에 관한 표준이 적혀있습니다.
날짜 뒤 T는 둘다 같이 표기할 때 날짜와 시간 사이에 붙이는 겁니다.
뒤의 Z는 UTC 존에서의 시간.
z앞의 .000은 밀리세컨드를 나타내는 건데, ISO에서 있고 없는게 큰 차이라면서 굳이 집어넣습니다 = _=);;
그래서 대충 "…%d.000z" 식으로 출력하곤 하죠;;;
시간문자를 편하게 파싱할 수 없을까요?
직접 파싱안하고.. 제공하는 함수는 없을까요?
2008-03-12T20:21:45.000Z
@.@
strftime 을 사용한
strftime 을 사용한 적이 있었던 거 같네요.
그 외 다른 함수는 다른 분이 추천을 ==}
덧.
아래분 답변을 보니 제가 질문의 의도와 다른 엉뚱한 대답을 한 거 같네요 :)
strftime은 시간 변수를 특정 포맷의 문자열로 출력하고자 할 때 사용하는게 맞겠습니다.
직접 파싱해도
직접 파싱해도 파싱은 한줄이면 되는데..
다른게 더필요한가요?
sscanf( "2008-03-12T20:21:45.000Z", "%4s-%2s-%2sT%2s:%2s:%2s.000Z", yyyy, mm, dd, hh, mi, ss );
아.. sscanf()
가끔 귀찮은 파싱을 직접하면서 삽질성 시간을 보내는때가 있는데
sscanf() 함수로 한방에 처리하는 경우를 보고 허탈해지곤 합니다.
이번이 처음이 아니네요(HTTP 헤더를 sscanf()로 깔끔하게 처리하더군요)
왜 유독 sscanf() 함수의 사용을 자주 잊어버리는지..
이렇게 유용한 sscanf()함수를..
감사합니다
컴퓨터 옆에 포스트잍에 sscanf() 함수를 적어둬야겠습니다.
사족
자바스크립트로 문자열 파싱하는 코드를 열심히 작성했는데
웹에서 비슷한 기능을 하는 소스를 보니 .... 정규표현식 한방으로 끝내더군요..
이때도 허탈했었는데..
아직 시간 문자열 파싱하는 코드를 작성하진 않았답니다..
편한게 없나... 고민만 했었는데.. ㅎㅎ 다행입니다.
감사감사 ^^
@.@
댓글 달기