Jun 1 2005 1:33PM
Aug 28 1999 12:00AM
'가 주요 구문 분석' 에 대한 일상적인 다테타임벌린스트라티메 문장열 datetime. 이 형식을 통해 처리할 수 있는 모든 종류의 형식식 검은선을 형식 문자열 you give it:
from datetime import datetime
datetime_object = datetime.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
'결과' datetime 객체인지 소박한 시간대.
링크:
Python 설명서 'strptime': [파이썬 2] [1], [파이썬 3] [2]
'/' Strptime '형식' 파이썬 문서에 대한 스트라프티메 문장열: [파이썬 2] [3], [파이썬 3] [4]
strftime.org 도 정말 잘 스트라프티메 참조로는
유라유라테이코쿠:
[1]: https://docs.python.org/2/library/datetime.html # 다테타임벌린다테타임벌린스트라티메 " datetime.datetime.strptime"; [2]: https://docs.python.org/3/library/datetime.html # 다테타임벌린다테타임벌린스트라티메 [3]: https://docs.python.org/2/library/datetime.html # 스트라프티메 및 strptime 비헤이비어를 " strftime-and-strptime-behavior"; [4]: https://docs.python.org/3/library/datetime.html # 스트라프티메 및 strptime 비헤이비어를
다테우틸 제 3 자에게 사용하여 라이브러리:
from dateutil import parser
parser.parse("Aug 28 1999 12:00AM") # datetime.datetime(1999, 8, 28, 0, 0)
날짜 형식 등 대부분의 it 처리할 수 있는 한 분석할 수 있어야 합니다. # 39 에 비해 보다 편리한 대로 it& 'strptime' 올바른 형식 중 대부분의 시간을 짐작할 수 있다.
통해 설치할 수 있습니다.
pip install python-dateutil
체크아웃하려고 [strptime] [1] 의 시간 모듈에서는. 이는 보색으로 [스트라프티메] 의 [3].
$ python
>>> import time
>>> time.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
time.struct_time(tm_year=2005, tm_mon=6, tm_mday=1,
tm_hour=13, tm_min=33, tm_sec=0,
tm_wday=2, tm_yday=152, tm_isdst=-1)
[1]: http://docs.python.org/3/library/time.html # 타임벌린스트라티메
[3]: http://docs.python.org/3/library/time.html # 타임벌린스트라프티메
난 정말 멋있게 표현식에서는 프로젝트로 일부 함께 방황토록 변환할 수 있다. 체크아웃하려고 [타임슬링] (http://github.com/stevepeak/timestring) .
>>> import timestring
>>> timestring.Date('monday, aug 15th 2015 at 8:40 pm')
<timestring.Date 2015-08-15 20:40:00 4491909392>
>>> timestring.Date('monday, aug 15th 2015 at 8:40 pm').date
datetime.datetime(2015, 8, 15, 20, 40)
>>> timestring.Range('next week')
<timestring.Range From 03/10/14 00:00:00 to 03/03/14 00:00:00 4496004880>
>>> (timestring.Range('next week').start.date, timestring.Range('next week').end.date)
(datetime.datetime(2014, 3, 10, 0, 0), datetime.datetime(2014, 3, 14, 0, 0))
문자열을 datetime 객체에는 strptime '='
다른 형식으로 datetime 객체에는 스트라프티메 '='
1일 6월 2005년 1 33pm ''
는 같음
'%b %d. %Y %I:%M%p'
>. 같은 달 (6월) 의 이름을 줄여서 %b 로케일에 >. >. %d. 날짜 비호환성의 푹신한 제로 소수 (1) >. >. %Y 함께 올해 세기 비호환성의 소수 (2015년) >. >. %I 시간 (12 시간 클럭) 를 푹신한 제로 소수 (01) >. >. %M 분 비호환성의 푹신한 제로 소수 (33) >. >. am / PM (PM) 의 avamer %p 로케일에 중
그래서 i-전자 strptime '문자열 변환' 를 합니다.
>>> dates = []
>>> dates.append('Jun 1 2005 1:33PM')
>>> dates.append('Aug 28 1999 12:00AM')
>>> from datetime import datetime
>>> for d in dates:
... date = datetime.strptime(d, '%b %d %Y %I:%M%p')
... print type(date)
... print date
...
출력입니다
<type 'datetime.datetime'>
2005-06-01 13:33:00
<type 'datetime.datetime'>
1999-08-28 00:00:00
날짜 형식 또는 어떤 다른 경우 그 팬더곰이요 다테티우스파스 사용할 수 있습니다.
>>> import dateutil
>>> dates = []
>>> dates.append('12 1 2017')
>>> dates.append('1 1 2017')
>>> dates.append('1 12 2017')
>>> dates.append('June 1 2017 1:30:00AM')
>>> [parser.parse(x) for x in dates]
출력입니다
[datetime.datetime(2017, 12, 1, 0, 0), datetime.datetime(2017, 1, 1, 0, 0), datetime.datetime(2017, 1, 12, 0, 0), datetime.datetime(2017, 6, 1, 1, 30)]
이미 많은 타임스탬프에 내포된 시간대. 작업하십시오 보장하기 위한 코드가 모든 시간대, 콩지름에 (utc) 내부 및 외부 물질 시간대 부착합니다 때마다 시스템에 입력하는.
파이썬 3.2+:
>>> datetime.datetime.strptime(
... "March 5, 2014, 20:13:50", "%B %d, %Y, %H:%M:%S"
... ).replace(tzinfo=datetime.timezone(datetime.timedelta(hours=-3)))
여기에서는 두 마리의 변환할지 날짜 다음으로 포맷됩니다 문장열 다테타임벌린다테 객체에는 솔루션을 사용하면 된다.
import pandas as pd
dates = ['2015-12-25', '2015-12-26']
# 1) Use a list comprehension.
>>> [d.date() for d in pd.to_datetime(dates)]
[datetime.date(2015, 12, 25), datetime.date(2015, 12, 26)]
# 2) Convert the dates to a DatetimeIndex and extract the python dates.
>>> pd.DatetimeIndex(dates).date.tolist()
[datetime.date(2015, 12, 25), datetime.date(2015, 12, 26)]
dates = pd.DatetimeIndex(start='2000-1-1', end='2010-1-1', freq='d').date.tolist()
>>> %timeit [d.date() for d in pd.to_datetime(dates)]
# 100 loops, best of 3: 3.11 ms per loop
>>> %timeit pd.DatetimeIndex(dates).date.tolist()
# 100 loops, best of 3: 6.85 ms per loop
datetimes = ['Jun 1 2005 1:33PM', 'Aug 28 1999 12:00AM']
>>> pd.to_datetime(datetimes).to_pydatetime().tolist()
[datetime.datetime(2005, 6, 1, 13, 33),
datetime.datetime(1999, 8, 28, 0, 0)]
판다 '에서' 로 변환하기 위한 여러 가지 옵션을 사용하여 타임스탬프에 문장열 to_datetime 때문에 특별히 하는 경우 docs 확인합니다.
[속성 및 메서드], [2] 거짓하였으니 타임스탬프에 많이 액세스할 수 있는 '외에도' 벌린다테
[2]: # 다테이메리크 속성 http://pandas.pydata.org/pandas-docs/stable/api.html
여기서 언급한 생각하신거야 isn& # 39, t 는 유용합니다. 추가에는 접미어입니다 되는 날이었다. 내가 원하는 만큼 쉽게 사용할 수 있도록 접미사를 분리 논리가 아니라, 원하는 날짜.
import time
def num_suffix(n):
'''
Returns the suffix for any given int
'''
suf = ('th','st', 'nd', 'rd')
n = abs(n) # wise guy
tens = int(str(n)[-2:])
units = n % 10
if tens > 10 and tens < 20:
return suf[0] # teens with 'th'
elif units <= 3:
return suf[units]
else:
return suf[0] # 'th'
def day_suffix(t):
'''
Returns the suffix of the given struct_time day
'''
return num_suffix(t.tm_mday)
# Examples
print num_suffix(123)
print num_suffix(3431)
print num_suffix(1234)
print ''
print day_suffix(time.strptime("1 Dec 00", "%d %b %y"))
print day_suffix(time.strptime("2 Nov 01", "%d %b %y"))
print day_suffix(time.strptime("3 Oct 02", "%d %b %y"))
print day_suffix(time.strptime("4 Sep 03", "%d %b %y"))
print day_suffix(time.strptime("13 Nov 90", "%d %b %y"))
print day_suffix(time.strptime("14 Oct 10", "%d %b %y"))
개인적으로 사용하는 등 솔루션 및 아름답다 '파서' 모듈에서는 원하는거요 두 번째 이 질문의 답을 때, 임의의 문자열 리터럴을 don& # 39 를 이해했소 apc® chunghwa 없다. 느린 것이 아니라, 한 문제 '에 비해 90% 로 오토메이티드 수락됨 strptime'.
from dateutil import parser
from datetime import datetime
import timeit
def dt():
dt = parser.parse("Jun 1 2005 1:33PM")
def strptime():
datetime_object = datetime.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
print(timeit.timeit(stmt=dt, number=10**5))
print(timeit.timeit(stmt=strptime, number=10**5))
>10.70296801342902
>1.3627995655316933
As long as you 만 하지 않는 이 배 운명인것 다시 파서 '방식이 더 좋은 것', 난 여전히 대부분의 시간을 자동으로 처리할 수 있고 편리한 형식식.
장고 시간대 인식 datetime 객체에는 예.
import datetime
from django.utils.timezone import get_current_timezone
tz = get_current_timezone()
format = '%b %d %Y %I:%M%p'
date_object = datetime.datetime.strptime('Jun 1 2005 1:33PM', format)
date_obj = tz.localize(date_object)
이 변환은 및 Python USE_TZ = 진정한 '장고' 있을 때 아주 중요한 역할을 합니다.
RuntimeWarning: DateTimeField MyModel.created received a naive datetime (2016-03-04 00:00:00) while time zone support is active.
In [34]: import datetime
In [35]: _now = datetime.datetime.now()
In [36]: _now
Out[36]: datetime.datetime(2016, 1, 19, 9, 47, 0, 432000)
In [37]: print _now
2016-01-19 09:47:00.432000
In [38]: _parsed = datetime.datetime.strptime(str(_now),"%Y-%m-%d %H:%M:%S.%f")
In [39]: _parsed
Out[39]: datetime.datetime(2016, 1, 19, 9, 47, 0, 432000)
In [40]: assert _now == _parsed
작은 유틸리티에는 다음과 같은 생성 함수를
def date(datestr="", format="%Y-%m-%d"):
from datetime import datetime
if not datestr:
return datetime.today().date()
return datetime.strptime(datestr, format).date()
이는 다용성 충분한:
이 경우, 모든 인수를 don& # 39 - t, s # 39 전달하십시오 반환되므로 today& 바뀌었다.
>>> import arrow
>>> dateStrings = [ 'Jun 1 2005 1:33PM', 'Aug 28 1999 12:00AM' ]
>>> for dateString in dateStrings:
... dateString
... arrow.get(dateString.replace(' ',' '), 'MMM D YYYY H:mmA').datetime
... arrow.get(dateString.replace(' ',' '), 'MMM D YYYY H:mmA').format('ddd, Do MMM YYYY HH:mm')
... arrow.get(dateString.replace(' ',' '), 'MMM D YYYY H:mmA').humanize(locale='de')
...
'Jun 1 2005 1:33PM'
datetime.datetime(2005, 6, 1, 13, 33, tzinfo=tzutc())
'Wed, 1st Jun 2005 13:33'
'vor 11 Jahren'
'Aug 28 1999 12:00AM'
datetime.datetime(1999, 8, 28, 0, 0, tzinfo=tzutc())
'Sat, 28th Aug 1999 00:00'
'vor 17 Jahren'
또한 도움됐네 변환하기 위한 것이라고 할 수 있는 시간대 문자열이어야 datetime
def convert_string_to_time(date_string, timezone):
from datetime import datetime
import pytz
date_time_obj = datetime.strptime(date_string[:26], '%Y-%m-%d %H:%M:%S.%f')
date_time_obj_timezone = pytz.timezone(timezone).localize(date_time_obj)
return date_time_obj_timezone
date = '2018-08-14 13:09:24.543953+00:00'
TIME_ZONE = 'UTC'
date_time_obj_timezone = convert_string_to_time(date, TIME_ZONE)
Easy_date 를 쉽게 사용할 수 있습니다.
import date_converter
converted_date = date_converter.string_to_datetime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
그런 다음 이를 통해 고객의 개별 반군지역 수동으로로 확인표시를 국한됨 날짜 형식 변환 필드용 다음과 같습니다.
>>> import datetime
>>> date = datetime.date(int('2017'),int('12'),int('21'))
>>> date
datetime.date(2017, 12, 21)
>>> type(date)
<type 'datetime.date'>
네 분리-정합성 문자열을 값으로 변환해야 다음과 같은 데이터 유형을 전달할 수 있습니다
selected_month_rec = '2017-09-01'
date_formate = datetime.date(int(selected_month_rec.split('-')[0]),int(selected_month_rec.split('-')[1]),int(selected_month_rec.split('-')[2]))
날짜 형식 결과 값을 얻을 수 있습니다.
emp = pd.read_csv("C:\\py\\programs\\pandas_2\\pandas\\employees.csv")
emp.info()
이 영상은 " 시작일 Time"; 열 및 ", 마지막 로그인시키는 Time". 둘 다 ", 개체 = strings". 데이터 프레임을 에서
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 8 columns):
First Name 933 non-null object
Gender 855 non-null object
>. 1000년 null 이 아닌 객체에는 시작 >. >. 1000년 마지막 로그인 시간 null 이 아닌 객체에는
Salary 1000 non-null int64
Bonus % 1000 non-null float64
Senior Management 933 non-null object
Team 957 non-null object
dtypes: float64(1), int64(1), object(6)
memory usage: 62.6+ KB
'에서' 옵션을 사용하여 parse_dates read_csv 언급하십시오 구체화하십시오 datetime 으로 변환할 수 있습니다 '' 판다 datetime 형식입니다.
emp = pd.read_csv("C:\\py\\programs\\pandas_2\\pandas\\employees.csv", parse_dates=["Start Date", "Last Login Time"])
emp.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 8 columns):
First Name 933 non-null object
Gender 855 non-null object
>. 1000년 [ns] null 이 아닌 datetime64 시작 >. 1000년 마지막 로그인 시간 datetime64 null 이 아닌 [ns]
Salary 1000 non-null int64
Bonus % 1000 non-null float64
Senior Management 933 non-null object
Team 957 non-null object
dtypes: datetime64[ns](2), float64(1), int64(1), object(4)
memory usage: 62.6+ KB
참조 [my answer] (https://stackoverflow.com/questions/6615533/is-there-a-python-equivalent-to-cs-datetime-tryparse/47876446 # 47876446).
이는 실제 데이터를 실제 문제: 여러 일치하지 않는 일관성이 없고, 불완전, 다국어 / 지역 날짜 형식, 종종 혼합됨 자유롭게 한 데이터세트를. # 39 의 생산을 위한 코드를 it& 확인을 하지 못하는 등 검색하기를 고사하고 행복한 idfsysobject. 여우.
We need to 트리스카치 여러 datetime 형식식 fmt1, fmt2., 프마트너 및 예외 (() 에서 'strptime') / 처리하십니까 억제할지 모든 것을 불일치입니다 (및 특히 지독히 맛없는 필요로 하는 것을 n 깊이형 밀어맞춤된 사다리 의 트리스카치 절). [내 솔루션이므로] (https://stackoverflow.com/questions/6615533/is-there-a-python-equivalent-to-cs-datetime-tryparse/47876446 # 47876446) 에서
def try_strptime(s, fmts=['%d-%b-%y','%m/%d/%Y']):
for fmt in fmts:
try:
return datetime.strptime(s, fmt)
except:
continue
return None # or reraise the ValueError if no format matched, if you prefer