Tôi đang cố gắng để có được ngày của tháng trước với python. Đây là những gì tôi đã thử:
str( time.strftime('%Y') ) + str( int(time.strftime('%m'))-1 )
Tuy nhiên, cách này rất tệ vì 2 lý do: Đầu tiên, nó trả về 20122 cho tháng 2 năm 2012 (thay vì 201202) và thứ hai là nó sẽ trả về 0 thay vì 12 vào tháng 1.
Tôi đã giải quyết rắc rối này trong bash với
echo $(date -d"3 month ago" "+%G%m%d")
Tôi nghĩ rằng nếu bash có một cách tích hợp cho mục đích này, thì python, được trang bị nhiều hơn, sẽ cung cấp một cái gì đó tốt hơn là buộc viết kịch bản của chính mình để đạt được mục tiêu này. Tất nhiên tôi có thể làm một cái gì đó như:
if int(time.strftime('%m')) == 1:
return '12'
else:
if int(time.strftime('%m')) < 10:
return '0'+str(time.strftime('%m')-1)
else:
return str(time.strftime('%m') -1)
Tôi chưa kiểm tra mã này và tôi không muốn sử dụng mã này (trừ khi tôi không thể tìm thấy bất kỳ cách nào khác: /)
Cảm ơn bạn đã giúp đỡ!