পাইথন ডেটটাইম - দিন, মাস, বছর পাওয়ার জন্য স্ট্রিমটাইম ব্যবহারের পরে ঘন্টা এবং মিনিট স্থির করে


174

আমি সফলভাবে 26 Sep 2012বিন্যাসের কিছু 26-09-2012ব্যবহার করে রূপান্তর করেছি :

datetime.strptime(request.POST['sample_date'],'%d %b %Y')

যাইহোক, আমি কীভাবে উপরের মতো কোনও কিছুর ঘন্টা এবং মিনিট 11:59 এ সেট করতে জানি না। কেউ কি জানেন, এটা কিভাবে করে?

দ্রষ্টব্য, এটি কেবলমাত্র বর্তমান তারিখ নয়, ভবিষ্যতের তারিখ বা যেকোন এলোমেলো হতে পারে।

উত্তর:


363

ব্যবহার datetime.replace:

from datetime import datetime
date = datetime.strptime('26 Sep 2012', '%d %b %Y')
newdate = date.replace(hour=11, minute=59)

দ্রুত উত্তর দেওয়ার জন্য ধন্যবাদ! :) মাত্র কৌতূহল যদি অতিরিক্ত তারিখের পরিবর্তনশীল না করে এটির উপায় আছে? (আমি একটি অজগর নবাগত)
ব্যবহারকারী1678031

2
হ্যাঁ, ঠিক আছে date = datetime.strptime('26 Sep 2012', '%d %b %Y').replace(hour=11, minute=59)। আমি অতিরিক্ত পরিবর্তনশীলটি ব্যবহার করেছি যাতে লাইনটি খুব বেশি দীর্ঘ না হয় :)
nneonneo

14
লক্ষণীয় বিষয়: তারিখের সময়কালের datetime.replaceএকটি নতুন অনুলিপি (যেহেতু datetimeঅপরিবর্তনীয়) ফিরিয়ে দেয় : এটি সে ক্ষেত্রে এর মতো str.replace
nneonneo

আমি কীভাবে '2016-06-01' এর পরে সবকিছু মুছে ফেলতে পারি যাতে এই ঘন্টা মিনিট এবং দ্বিতীয়টি অদৃশ্য হয়ে যায়?
পিভি 8

46

ডেটটাইম.রেপ্লেস () সেরা বিকল্পগুলি সরবরাহ করবে। এছাড়াও, এটি দিন, বছর এবং মাস প্রতিস্থাপনের জন্য সুবিধা সরবরাহ করে।

মনে করুন আমাদের একটি datetimeঅবজেক্ট রয়েছে এবং তারিখটি উপস্থাপিত হয়েছে: "2017-05-04"

>>> from datetime import datetime
>>> date = datetime.strptime('2017-05-04',"%Y-%m-%d")
>>> print(date)
2017-05-04 00:00:00
>>> date = date.replace(minute=59, hour=23, second=59, year=2018, month=6, day=1)
>>> print(date)
2018-06-01 23:59:59

8
আপনার উত্তরের 5 বছর আগে নিম্নিওর উত্তর পোস্ট করার সাথে আপনার উত্তরটির যুক্ত মূল্য কী?
স্যামুয়েল ড্যাজন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.