Programing

Python에서 날짜를 datetime으로 변환

lottogame 2020. 10. 4. 10:15
반응형

Python에서 날짜를 datetime으로 변환


예를 들어 주어진 날짜의 자정에 대해 가져 오는 것과 같이 Python에서 a date로 변환하는 내장 메서드가 있습니까? 반대의 변환이 용이 : 방법을.datetimedatetimedatetime.date()

정말 수동으로 전화 datetime(d.year, d.month, d.day)해야합니까?


datetime.combine (날짜, 시간)을 사용할 수 있습니다 . 당분간 datetime.time자정으로 초기화 객체 를 생성합니다 .

from datetime import date
from datetime import datetime

dt = datetime.combine(date.today(), datetime.min.time())

당신이 언급하고 싫어하는 것이 가장 읽기 쉬운 방법이라고 생각하지만 몇 가지 방법이 있습니다.

>>> t=datetime.date.today()
>>> datetime.datetime.fromordinal(t.toordinal())
datetime.datetime(2009, 12, 20, 0, 0)
>>> datetime.datetime(t.year, t.month, t.day)
datetime.datetime(2009, 12, 20, 0, 0)
>>> datetime.datetime(*t.timetuple()[:-4])
datetime.datetime(2009, 12, 20, 0, 0)

등등-그러나 기본적으로 그들은 모두 date개체 에서 정보를 적절하게 추출 하고 datetime.


받아 들여지는 대답은 정확하지만 datetime.min.time()정확히 무엇을하는지 명확하지 않기 때문에 사용 하지 않는 것이 좋습니다. 그것이 당신에게 명백하다면, 당신에게 더 많은 힘이 있습니다. 나는 또한 timetuple방법과 주문에 대한 의존도에 대해서도 똑같이 느낍니다 .

제 생각에, datetime모듈 API에 매우 익숙해 지도록 독자에게 의존하지 않고이를 수행하는 가장 읽기 쉽고 명시적인 방법 은 다음과 같습니다.

from datetime import date, datetime
today = date.today()
today_with_time = datetime(
    year=today.year, 
    month=today.month,
    day=today.day,
)

그것은 "명시적인 것이 암묵적인 것보다 낫다"에 대한 나의 견해입니다.


date.timetuple()메서드 및 unpack 연산자를 사용할 수 있습니다 *.

args = d.timetuple()[:6]
datetime.datetime(*args)

오늘 2016 년에는 pandas Timestamp에서 가장 깨끗한 솔루션을 제공한다고 생각합니다.

from datetime import date
import pandas as pd
d = date.today()
pd.Timestamp(d)

Timestamp는 datetime에 해당하는 pandas이며 대부분의 경우 교환 할 수 있습니다. 검사:

from datetime import datetime
isinstance(pd.Timestamp(d), datetime)

그러나 정말로 바닐라 날짜 시간을 원한다면 다음과 같이 할 수 있습니다.

pd.Timestamp(d).to_datetime()

Timestamps are a lot more powerful than datetimes, amongst others when dealing with timezones. Actually, Timestamps are so powerful that it's a pity they are so poorly documented...


One way to convert from date to datetime that hasn't been mentioned yet:

from datetime import date, datetime
d = date.today()
datetime.strptime(d.strftime('%Y%m%d'), '%Y%m%d')

You can use easy_date to make it easy:

import date_converter
my_datetime = date_converter.date_to_datetime(my_date)

Using pandas to convert a series of dates to python datetimes:

dates = pd.DataFrame(
    {'date': pd.DatetimeIndex(start='2017-01-01', end='2017-01-5', freq='D')})
>>> dates
        date
0 2017-01-01
1 2017-01-02
2 2017-01-03
3 2017-01-04
4 2017-01-05

>>> pd.DatetimeIndex(dates['date']).to_pydatetime().tolist()
[datetime.datetime(2017, 1, 1, 0, 0),
 datetime.datetime(2017, 1, 2, 0, 0),
 datetime.datetime(2017, 1, 3, 0, 0),
 datetime.datetime(2017, 1, 4, 0, 0),
 datetime.datetime(2017, 1, 5, 0, 0)]

One may first need to convert the dates:

dates = pd.DataFrame(
        {'date': ['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04', '2017-01-05']})
dates['date'] = pd.DatetimeIndex(dates['date'])
pd.DatetimeIndex(dates['date']).to_pydatetime().tolist()

to_datetime() is deprecated, now it's called to_pydatetime()


If you need something quick, datetime_object.date() gives you a date of a datetime object.


I am a newbie to Python. But this code worked for me which converts the specified input I provide to datetime. Here's the code. Correct me if I'm wrong.

import sys
from datetime import datetime
from time import mktime, strptime

user_date = '02/15/1989'
if user_date is not None:
     user_date = datetime.strptime(user_date,"%m/%d/%Y")
else:
     user_date = datetime.now()
print user_date

참고URL : https://stackoverflow.com/questions/1937622/convert-date-to-datetime-in-python

반응형