Tôi thấy rất nhiều khi chuyển đổi một chuỗi datetime
thành đối tượng datetime
bằng Python, nhưng tôi muốn đi theo cách khác.
Tôi có datetime.datetime(2012, 2, 23, 0, 0)
và tôi muốn chuyển đổi thành chuỗi như '2/23/2012'
.Chuyển đổi đối tượng ngày giờ thành Chuỗi chỉ ngày bằng Python
Trả lời
Bạn có thể sử dụng chuỗi định dạng phương pháp đơn giản:
>>> dt = datetime.datetime(2012, 2, 23, 0, 0)
>>> '{0.month}/{0.day}/{0.year}'.format(dt)
'2/23/2012'
>>> '%s/%s/%s' % (dt.month, dt.day, dt.year)
'2/23/2012'
tương tự, bạn có thể làm điều gì đó như ''{:% Y-% m-% d% H:% M}' định dạng (datetime (2001, 2, 3, 4, 5))'.Xem thêm tại pyformat.info – mway
type-specific formatting
thể được sử dụng cũng như:
t = datetime.datetime(2012, 2, 23, 0, 0)
"{:%m/%d/%Y}".format(t)
Output:
'02/23/2012'
date
và datetime
đối tượng (và time
cũng) hỗ trợ một mini-language to specify output, và có hai cách để truy cập vào nó:
- gọi phương thức trực tiếp:
dt.strftime('format here')
; và - phương pháp định dạng mới:
'{:format here}'.format(dt)
Vì vậy, ví dụ bạn có thể trông giống như:
dt.strftime('%m/%d/%Y')
hoặc
'{:%m/%d/%Y}'.format(dt)
Đối với đầy đủ lợi ích: bạn cũng có thể truy cập trực tiếp các thuộc tính của đối tượng, nhưng sau đó bạn chỉ nhận được các số:
'%s/%s/%s' % (dt.month, dt.day, dt.year)
Thời gian thực hiện để tìm hiểu ngôn ngữ mini đáng giá.
Để tham khảo, đây là những mã được sử dụng trong mini-ngôn ngữ:
%a
Weekday như tên viết tắt là miền địa phương của.%A
Ngày trong tuần làm tên đầy đủ của địa phương.%w
Ngày trong tuần dưới dạng số thập phân, trong đó 0 là Chủ Nhật và 6 là Thứ Bảy.%d
Ngày trong tháng dưới dạng số thập phân không có đệm.%b
Tháng làm tên viết tắt của ngôn ngữ.%B
Tháng làm tên đầy đủ của địa phương.%m
Tháng dưới dạng số thập phân không có đệm. 01, ..., 12%y
Năm không có thế kỷ dưới dạng số thập phân không có đệm. 00, ..., 99%Y
Năm có thế kỷ dưới dạng số thập phân. 1970, 1988, 2001, 2013%H
Giờ (đồng hồ 24 giờ) dưới dạng số thập phân không có đệm. 00, ..., 23%I
Giờ (12 giờ đồng hồ) dưới dạng số thập phân không có đệm. 01, ..., 12%p
Tương đương với vị trí của AM hoặc PM.%M
Phút dưới dạng số thập phân không có đệm. 00, ..., 59%S
Thứ hai dưới dạng số thập phân không có đệm. 00, ..., 59%f
Số nguyên làm số thập phân, không đệm ở bên trái. 000000, ..., 999999%z
UTC bù đắp theo hình thức + hhmm hoặc -HHMM (trống nếu ngây thơ), 0000, -0400, +1030%Z
tên múi giờ (trống nếu ngây thơ), UTC, EST, CST%j
Ngày trong năm dưới dạng số thập phân không có đệm. 001, ..., 366%U
Số tuần trong năm (Chủ Nhật là ngày đầu tiên) dưới dạng số thập phân đệm bằng 0.%W
Số tuần trong năm (Thứ hai là thứ nhất) dưới dạng số thập phân.%c
Ngày và giờ đại diện phù hợp của địa phương.%x
Đại diện ngày thích hợp của địa phương.%X
Đại diện thời gian thích hợp của địa phương.%%
Ký tự '%' theo nghĩa đen.
tiền thưởng cho phép tổng hợp tốt – tinySandy
Ghép nối chuỗi, str.join
, có thể được sử dụng để tạo chuỗi.
d = datetime.now()
'/'.join(str(x) for x in (d.month, d.day, d.year))
'3/7/2016'
Một tùy chọn khác:
import datetime
now=datetime.datetime.now()
now.isoformat()
# ouptut --> '2016-03-09T08:18:20.860968'
Bạn có thể chuyển đổi datetime để chuỗi. published_at="{}".format(self.published_at)
Có thể chuyển đổi đối tượng datetime thành chuỗi bằng cách làm việc trực tiếp với các thành phần của đối tượng ngày giờ.
from datetime import date
myDate = date.today()
#print(myDate) would output 2017-05-23 because that is today
#reassign the myDate variable to myDate = myDate.month
#then you could print(myDate.month) and you would get 5 as an integer
dateStr = str(myDate.month)+ "/" + str(myDate.day) + "/" + str(myDate.year)
# myDate.month is equal to 5 as an integer, i use str() to change it to a
# string I add(+)the "/" so now I have "5/" then myDate.day is 23 as
# an integer i change it to a string with str() and it is added to the "5/"
# to get "5/23" and then I add another "/" now we have "5/23/" next is the
# year which is 2017 as an integer, I use the function str() to change it to
# a string and add it to the rest of the string. Now we have "5/23/2017" as
# a string. The final line prints the string.
print(dateStr)
Output -> 5/23/2017
Vui lòng sử dụng liên kết [chỉnh sửa] để giải thích cách mã này hoạt động và không chỉ cung cấp mã, vì giải thích có nhiều khả năng giúp người đọc trong tương lai. Xem thêm [trả lời]. [nguồn] (http://stackoverflow.com/users/5244995) –
- 1. Chuyển đổi ngày giờ thành chuỗi
- 2. Chuyển đổi chuỗi thành ngày giờ
- 3. chuyển đổi đối tượng Ngày thành TimeWithZone
- 4. Chuyển chuỗi thành ngày có múi giờ
- 5. Làm cách nào để chuyển đổi Dấu thời gian thành đối tượng Ngày hoặc Ngày giờ?
- 6. C++: chuyển đổi chuỗi ngày/giờ thành tm struct
- 7. python cách chuyển đổi ngày giờ thành số thập phân
- 8. Chuyển đổi chuỗi thời gian utc thành đối tượng ngày giờ
- 9. PHP Ngày và giờ chuyển đổi chuỗi thành Ngày giờ MySQL
- 10. phân tích chuỗi ngày trong python (chuyển đổi chuỗi ngày)
- 11. Chuyển đổi ngày giờ thành định dạng được chỉ định
- 12. Chuyển đổi chuỗi ngày nhận biết múi giờ thành UTC và quay lại bằng Python
- 13. chuyển đổi chuỗi thành kiểu ngày tháng python
- 14. perl cách chuyển đổi chuỗi thành Ngày giờ?
- 15. Chuyển đổi chuỗi ngày/giờ UTC trong C#
- 16. Chuyển đổi ngày giờ UTC thành ngày giờ địa phương của người dùng
- 17. Chuyển đổi ngày giờ thành hiện tại
- 18. Chuyển đổi ngày/giờ theo định dạng YYYYMMDD/HHMMSS sang ngày giờ Python
- 19. Javascript chuyển đổi giây thành đối tượng ngày
- 20. Chuyển đổi định dạng ngày tùy chỉnh (chuỗi) thành ngày giờ
- 21. cách chuyển đổi chuỗi ngày giờ trở lại đối tượng datetime?
- 22. Chuyển đổi ngày mySQL thành ngày Javascript
- 23. chuyển đổi Chuỗi thành Ngày trên GWT
- 24. Chuyển đổi chuỗi ngày và giờ theo định dạng UTC
- 25. Chuyển đổi 8 chữ số thành Loại ngày giờ
- 26. Chuyển đổi định dạng ngày giờ thành giây
- 27. chuyển đổi ngày chuỗi thành java.sql.Date
- 28. Chuyển đổi chuỗi thành Ngày - C#
- 29. Thêm giờ vào đối tượng Ngày Javascript?
- 30. Chuỗi tạo thành Ngày giờ trong LINQ
Rất hữu ích cho 'DateTimeField' hoặc' DateField' trong django. Cảm ơn – erajuan
sử dụng 't = datetime.datetime.now()' để sử dụng ngày hiện tại – gizzmole
Theo như tôi có thể nói từ tài liệu, không có cách nào trả về ngày đệm khác 0 '23/2/2012'. –