programing

Python에서 날짜를 datetime으로 변환

yoursource 2022. 10. 12. 21:38
반응형

Python에서 날짜를 datetime으로 변환

내장 변환 방법이 있습니까?date에 대해서datetime예를 들어, Python을 사용하는 경우datetime그 날짜의 한밤중에?반대의 변환은 간단합니다.datetime가 있다.date()방법.

꼭 수동으로 전화해야 하나요?datetime(d.year, d.month, d.day)?

를 사용할 수 있습니다.당분간은,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대상화 및 적절한 ctor 또는 클래스 함수에 다시 플라우터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()메서드 및 언팩 연산자*.

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

2016년 현재 가장 깨끗한 솔루션은 팬더 타임스탬프에 의해 제공된다고 생각합니다.

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

타임스탬프는 판다의 날짜/시간과 동일하며 대부분의 경우 팬더와 상호 교환이 가능합니다.확인:

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

하지만 만약 당신이 정말로 바닐라 데이타임을 원한다면, 당신은 여전히 다음을 할 수 있습니다.

pd.Timestamp(d).to_datetime()

타임 스탬프는 시간대를 다룰 때 데이터 시간보다 훨씬 강력합니다.사실, 타임스탬프는 너무 강력해서 너무 서툴러서 안타깝지만...

날짜에서 아직 언급되지 않은 날짜로 변환하는 방법 중 하나는 다음과 같습니다.

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

를 사용할 수도 있습니다.

date = datetime.utcnow().date()
dt = datetime.fromisoformat(date.isoformat())

print(dt)

datetime.datetime(표준, 11, 15, 0, 0)

easy_date를 사용하여 쉽게 만들 수 있습니다.

import date_converter
my_datetime = date_converter.date_to_datetime(my_date)

datetime(d.year, d.month, d.day)을 수동으로 호출해야 합니까?

아니, 전화하는 게 낫지

date_to_datetime(dt)

한 번쯤은 구현할 수 있습니다.utils/time.py프로젝트:

from typing import Optional
from datetime import date, datetime

def date_to_datetime(
    dt: date,
    hour: Optional[int] = 0,
    minute: Optional[int] = 0, 
    second: Optional[int] = 0) -> datetime:

    return datetime(dt.year, dt.month, dt.day, hour, minute, second)

만들기 위해서dt시간대 대응 datetime(Django 시간대 util 사용):

from django.utils import timezone


timezone.now().replace(*(*dt.timetuple()[:6], 0))

다음 클래스를 사용할 수 있습니다.

import time 

import datetime

class TimingClass():

    def __init__(self):

        self.YEAR        = datetime.date.today().year
        self.MONTH       = datetime.date.today().month
        self.DATE        = datetime.date.today().day
        self.HOUR        = datetime.datetime.now().hour
        self.MINUTE      = datetime.datetime.now().minute
        self.SECONDS     = datetime.datetime.now().second
        
        self.TODAY       = datetime.date.today()
        self.YESTERDAY   = datetime.datetime.strftime( (self.TODAY - datetime.timedelta(days = 1)) , '%Y-%m-%d')
        self.TOMORROW   = datetime.datetime.strftime( (self.TODAY + datetime.timedelta(days = 1)) , '%Y-%m-%d')
        
        self.TODAY_datetime = datetime.datetime.combine(datetime.date.today(), datetime.datetime.min.time())

빨리 필요한 게 있으면datetime_object.date()는 datetime 객체의 날짜를 나타냅니다.

저는 Python에 처음 와봐요.그러나 이 코드는 지정된 입력을 날짜/시간으로 변환하는 데 도움이 되었습니다.여기 암호가 있습니다.내가 틀렸다면 고쳐 주세요.

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

반응형