পাইথনে "গতকালের" তারিখ ফর্ম্যাট করা


232

MMDDYYপাইথনের এই ফর্ম্যাটে আমাকে "গতকালের" তারিখটি খুঁজে পেতে হবে ।

উদাহরণস্বরূপ, আজকের তারিখটি এই জাতীয় প্রতিনিধিত্ব করবে: 111009

আমি আজকের জন্য সহজেই এটি করতে পারি তবে "গতকালের" জন্য স্বয়ংক্রিয়ভাবে এটি করতে আমার সমস্যা হয়।

উত্তর:


387

ব্যবহার datetime.timedelta()

>>> from datetime import date, timedelta
>>> yesterday = date.today() - timedelta(days=1)
>>> yesterday.strftime('%m%d%y')
'110909'

1
আপনি যদি পান্ডার সাথে কাজ করছেন বলে মনে করেন তবে আপনি এটিও ভালভাবে ব্যবহার করতে পারেন:print((pd.to_datetime('Today') - pd.Timedelta('1 days')).strftime('%m%d%y'))
এটনা

আপনি যদি বিকল্পগুলির সন্ধান করতে চান তবে আপনি পেন্ডুলাম ( পেন্ডুলাম.ওস্টেস.আইও ) ব্যবহার করতে পারেন : পেন্ডুলাম.নো ()। বিয়োগ (দিন = -1) .স্ট্রফটাইম ('% m% d% y')
এএফডি


21

এটি আপনার যা করা উচিত তা করা উচিত:

import datetime
yesterday = datetime.datetime.now() - datetime.timedelta(days = 1)
print yesterday.strftime("%m%d%y")

1
আপনি কেন ইউটিসি-র লোকদের তারিখটি সিস্টেমের স্থানীয় সময় অঞ্চলের তারিখের চেয়ে বেশি অফসেট করেন?
জেফরি হ্যারিস

1
আমি আমার কোড থেকে এটি অনুলিপি করেছি, ডাটাবেস ব্যবহারে আপনি প্রায়শই ইউটিসির বিষয়ে যত্নশীল হন। ইউটিসি স্টাফ সরানো হয়েছে।
স্টিফ

7

সমস্ত উত্তর সঠিক, তবে আমি উল্লেখ করতে চাই যে সময় ডেল্টা নেতিবাচক যুক্তি গ্রহণ করে

>>> from datetime import date, timedelta
>>> yesterday = date.today() + timedelta(days=-1)
>>> print(yesterday.strftime('%m%d%y')) #for python2 remove parentheses 

5

আমি কি এইটাকে আরও কিছু আন্তর্জাতিক করে তুলতে পারি এবং তারিখটি আন্তর্জাতিক মান অনুসারে ফর্ম্যাট করতে পারি এবং অদ্ভুত মাস-ডে-ইয়ারে না, যা মার্কিন যুক্তরাষ্ট্রে সাধারণ?

from datetime import datetime, timedelta

yesterday = datetime.now() - timedelta(days=1)
yesterday.strftime('%Y-%m-%d')

সম্মত হন যে আমরা রাজ্যে একটি অদ্ভুত তারিখের ফর্ম্যাটটি ব্যবহার করি, তবে ওপি বিশেষত সেই অদ্ভুত বিন্যাসের জন্য অনুরোধ করেছিল - যা এই ক্ষেত্রে `'% m% d% y'।
ডেভএল 17

@ ডেভএল 17, ফেয়ার পয়েন্ট। আমি উত্তর মার্কিন যুক্তরাষ্ট্রে যারা এই প্রশ্নে হোঁচট খাবেন তাদের জন্য ছেড়ে দেব।
অরভিদ বার্নহিল্ম

2

ক্রিসের দেওয়া উত্তরে প্রসারিত করা

আপনি যদি কোনও নির্দিষ্ট বিন্যাসে তারিখটি একটি ভেরিয়েবলে সঞ্চয় করতে চান তবে আমার জানা হিসাবে এটি সবচেয়ে সংক্ষিপ্ত এবং কার্যকর উপায় way

>>> from datetime import date, timedelta                   
>>> yesterday = (date.today() - timedelta(days=1)).strftime('%m%d%y')
>>> yesterday
'020817'

আপনি যদি এটি একটি পূর্ণসংখ্যা হিসাবে চান (যা দরকারী হতে পারে)

>>> yesterday = int((date.today() - timedelta(days=1)).strftime('%m%d%y'))
>>> yesterday
20817
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.