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


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.