Hướng dẫn how do you convert int to date in python? - làm thế nào để bạn chuyển đổi int thành ngày trong python?

Tôi đang tạo một mô -đun trong Python, trong đó tôi đang nhận được ngày ở định dạng số nguyên như 20120213, biểu thị ngày 13 tháng 2 năm 2012. Bây giờ, tôi muốn chuyển đổi ngày được định dạng số nguyên này thành một đối tượng ngày Python.

Ngoài ra, nếu có bất kỳ phương tiện nào tôi có thể trừ/thêm số ngày theo ngày được định dạng số nguyên như vậy để nhận giá trị ngày ở cùng định dạng? Giống như trừ đi 30 ngày từ 20120213 và nhận câu trả lời là

date += timedelta(days=10)
date -= timedelta(days=5)
0?

Hướng dẫn how do you convert int to date in python? - làm thế nào để bạn chuyển đổi int thành ngày trong python?

Shadowranger

Huy hiệu vàng 134K1212 gold badges173 silver badges250 bronze badges

hỏi ngày 17 tháng 3 năm 2012 lúc 13:26Mar 17, 2012 at 13:26

Tôi sẽ đề xuất cách tiếp cận đơn giản sau đây để chuyển đổi:

from datetime import datetime, timedelta
s = "20120213"
# you could also import date instead of datetime and use that.
date = datetime(year=int(s[0:4]), month=int(s[4:6]), day=int(s[6:8]))

Để thêm/trừ một số ngày trọng tài (giây hoạt động quá btw.), Bạn có thể làm như sau:

date += timedelta(days=10)
date -= timedelta(days=5)

Và chuyển đổi trở lại bằng cách sử dụng:

s = date.strftime("%Y%m%d")

Để chuyển đổi số nguyên thành chuỗi một cách an toàn, hãy sử dụng:

s = "{0:-08d}".format(i)

Điều này đảm bảo rằng chuỗi của bạn là tám người đi chơi dài và bên trái với số 0, ngay cả khi năm nhỏ hơn 1000 (năm âm có thể trở nên buồn cười).

Tham khảo thêm: Đối tượng DateTime, Đối tượng Timedelta

Đã trả lời ngày 17 tháng 3 năm 2012 lúc 13:30Mar 17, 2012 at 13:30

Hướng dẫn how do you convert int to date in python? - làm thế nào để bạn chuyển đổi int thành ngày trong python?

Jonas Schäferjonas SchäferJonas Schäfer

Huy hiệu vàng 19,6K55 gold badges54 silver badges69 bronze badges

5

Câu hỏi này đã được trả lời, nhưng vì lợi ích của những người khác khi xem câu hỏi này tôi muốn thêm đề xuất sau: Thay vì tự cắt như đề xuất trong câu trả lời được chấp nhận, bạn cũng có thể sử dụng

date += timedelta(days=10)
date -= timedelta(days=5)
1 (IMHO) dễ dàng hơn để đọc và có lẽ là cách ưa thích để thực hiện chuyển đổi này.

import datetime
s = "20120213"
s_datetime = datetime.datetime.strptime(s, '%Y%m%d')

Đã trả lời ngày 24 tháng 6 năm 2012 lúc 21:42Jun 24, 2012 at 21:42

W.PrinsW.PrinsW.Prins

1.2281 Huy hiệu vàng15 Huy hiệu bạc22 Huy hiệu đồng1 gold badge15 silver badges22 bronze badges

3

Đây là những gì tôi tin rằng câu trả lời câu hỏi (Python 3, với gợi ý loại):

from datetime import date


def int2date(argdate: int) -> date:
    """
    If you have date as an integer, use this method to obtain a datetime.date object.

    Parameters
    ----------
    argdate : int
      Date as a regular integer value (example: 20160618)

    Returns
    -------
    dateandtime.date
      A date object which corresponds to the given value `argdate`.
    """
    year = int(argdate / 10000)
    month = int((argdate % 10000) / 100)
    day = int(argdate % 100)

    return date(year, month, day)


print(int2date(20160618))

Mã trên tạo ra

date += timedelta(days=10)
date -= timedelta(days=5)
2 dự kiến.

Đã trả lời ngày 7 tháng 6 năm 2016 lúc 8:39Jun 7, 2016 at 8:39

Hướng dẫn how do you convert int to date in python? - làm thế nào để bạn chuyển đổi int thành ngày trong python?

DejanlekicdejanlekicDejanLekic

18.1k3 Huy hiệu vàng43 Huy hiệu bạc74 Huy hiệu đồng3 gold badges43 silver badges74 bronze badges

1

import datetime

timestamp = datetime.datetime.fromtimestamp(1500000000)

print(timestamp.strftime('%Y-%m-%d %H:%M:%S'))

Điều này sẽ cho đầu ra:

2017-07-14 08:10:00

Jeremy Caney

6.68350 huy hiệu vàng46 Huy hiệu bạc72 Huy hiệu đồng50 gold badges46 silver badges72 bronze badges

Đã trả lời ngày 3 tháng 2 năm 2021 lúc 2:07Feb 3, 2021 at 2:07

Hướng dẫn how do you convert int to date in python? - làm thế nào để bạn chuyển đổi int thành ngày trong python?

1