আপনার একরকম বা অন্যটি নিয়ে সমস্যা রয়েছে datetime.datetime.fromtimestamp(time.mktime(time.gmtime()))
মত প্রকাশের ।
(1) আপনার যা যা প্রয়োজন তা হ'ল সেকেন্ডে দুটি তাত্ক্ষণিকের মধ্যে পার্থক্য, খুব সহজ time.time()
কাজটি করে।
(২) আপনি যদি অন্য উদ্দেশ্যে এই টাইমস্ট্যাম্পগুলি ব্যবহার করে থাকেন তবে আপনি কী করছেন তা আপনার বিবেচনা করা উচিত, কারণ ফলাফলটির চারদিকে প্রচুর গন্ধ রয়েছে:
gmtime()
ইউটিসিতে একটি সময় দ্বিগুণ ফিরিয়ে দেয় তবে স্থানীয় সময়mktime()
একটি সময় দ্বিগুণ আশা করে ।
আমি অস্ট্রেলিয়ার মেলবোর্নে যেখানে স্ট্যান্ডার্ড টিজেডটি ইউটিসি +১০, তবে দিবালোক সংরক্ষণটি আগামীকাল সকাল পর্যন্ত কার্যকর রয়েছে তাই এটি ইউটিসি +১১ 11 আমি যখন নিম্নলিখিতটি সম্পাদন করেছি, এটি ছিল 2011-04-02T20: 31 স্থানীয় সময় এখানে ... ইউটিসি ছিল 2011-04-02T09: 31
>>> import time, datetime
>>> t1 = time.gmtime()
>>> t2 = time.mktime(t1)
>>> t3 = datetime.datetime.fromtimestamp(t2)
>>> print t0
1301735358.78
>>> print t1
time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=9, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=0) ### this is UTC
>>> print t2
1301700663.0
>>> print t3
2011-04-02 10:31:03 ### this is UTC+1
>>> tt = time.time(); print tt
1301736663.88
>>> print datetime.datetime.now()
2011-04-02 20:31:03.882000 ### UTC+11, my local time
>>> print datetime.datetime(1970,1,1) + datetime.timedelta(seconds=tt)
2011-04-02 09:31:03.880000 ### UTC
>>> print time.localtime()
time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=20, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=1) ### UTC+11, my local time
আপনি দেখতে পাবেন যে টি 3, আপনার অভিব্যক্তিটির ফলাফলটি ইউটিসি + 1, যা ইউটিসি + (আমার স্থানীয় ডিএসটি পার্থক্য) হিসাবে উপস্থিত হয় ... খুব অর্থবহ নয়। আপনার datetime.datetime.utcnow()
যখন ডিএসটি চালু / বন্ধ হয় তখন এক ঘন্টারও বেশি লাফিয়ে না পড়ে এমনটি ব্যবহার করার কথা বিবেচনা করা উচিত এবং আপনাকে এর চেয়ে আরও নির্ভুলতা দিতে পারেtime.time()