2015-01-26 4 views
5

어떻게 파이썬에서 YYYY-MM-DD hh : mm : ss 형식을 정수로 변환 할 수 있습니까? 예 : 2014-02-12 20:51:14 -> 정수로. MM : SS하지만 YYYY-MM-DD HH : MM : SS 그것은 정수가 인코딩되어 있는지에 따라 달라집니다파이썬에서 datetime을 정수로 변환하는 방법

def time_to_num(time_str): 
    hh, mm , ss = map(int, time_str.split(':')) 
    return ss + 60*(mm + 60*hh) 
+1

https://docs.python.org/2/library/datetime.html – user3467349

답변

8

는 난 단지 HH를 변환하는 방법을 알고있다. 이전 날짜로부터 밀리 초 단위로 날짜를 변환 할 수 있습니다. 사람들은 종종 이것을 1970 년 1 월 1 일 오전 12시 또는 1900 년 등에 붙이며 그 시점으로부터 시간을 밀리 초 단위의 정수로 측정합니다. datetime 모듈 (또는 다른 모듈)은이 기능을 제공합니다. 밀리 세컨드로 변환하기위한 구글 주변.

2012 : 당신이 의미를 할 수있는 년, 월, 일, 한 가지 방법을 인코딩하려면

은 정수 숫자 내에서를 나란히하기에 충분히 큰 중요도 순서 값으로 해당 구성 요소를 곱하는 것입니다 -06-13 -> 20120613 = 10,000 * (2012) + 100 * (6) + 1 * (13)

def to_integer(dt_time): 
    return 10000*dt_time.year + 100*dt_time.month + dt_time.day 

In [1]: import datetime 

In [2]: %cpaste 
Pasting code; enter '--' alone on the line to stop or use Ctrl-D. 
:def to_integer(dt_time): 
: return 10000*dt_time.year + 100*dt_time.month + dt_time.day 
: # Or take the appropriate chars from a string date representation. 
:-- 

In [3]: to_integer(datetime.date(2012, 6, 13)) 
Out[3]: 20120613 

분 및 초도 필요하면 자릿수를 표시하는 데 필요한만큼의 크기를 더하십시오.

레거시 시스템, 특히 레거시 SQL 데이터베이스에서 날짜 기반 데이터를 가져 오는 시스템에서이 두 번째 방법이 자주 발생했습니다.

매우 나쁜입니다. 날짜 정렬, 정수 형식으로 표시되는 월 또는 일 오프셋 (예 : 12 월을 통과 할 때 월을 1로 다시 설정 한 다음 연도 값을 증가시키는 등)을 계산할 때 해킹 코드를 작성하는 경우 정수 형식에서 모든 형식으로 변환합니다.

데이터를 소비하는 모든 사용자가이 정수 표현과 그 모든 도우미를 믿을 수 있도록하기 위해 노력하고있는 API의 심층적, 저수준 및 철저하게 테스트 된 섹션에 그러한 규정이 존재하지 않는 한 함수를 사용하면 많은 사람들이 장소에 기본적인 날짜 처리 루틴을 다시 작성하게됩니다.

가능하면 오랫동안 datetime.date과 같은 날짜 컨텍스트에 값을 두는 것이 훨씬 낫습니다. 따라서 해당 작업이 자연스러운 날짜 기반 컨텍스트로 표현되고 일부 독립 개발자의 정수로 개인 해킹.

관련 문제