با استفاده از تابع datetime.fromtimestamp در پایتون، برنامه‌ای بنویسید که یک لیست از timestampهای یونیکس (ثانیه به‌صورت عدد صحیح یا اعشاری) را گرفته، هر کدام را به رشته تاریخ-زمان به فرمت ISO تبدیل کند و اختلاف زمانی بین هر دو timestamp متوالی را محاسبه و نمایش دهد.

1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:19

0.0

با وارد کردن ماژول datetime در پایتون می‌توانید برای هر timestamp از datetime.fromtimestamp(ts) استفاده کنید و با متد strftime آن را به فرمت ISO مانند '%Y-%m-%dT%H:%M:%S' تبدیل کنید. برای محاسبه اختلاف زمانی بین timestampها، اشیاء datetime را از یکدیگر کم کنید تا یک timedelta بگیرید و سپس ثانیه یا دقیقه آن را استخراج کنید. اگر با آرایه‌های بزرگ کار می‌کنید می‌توانید از لیست‌کامپریهن یا numpy.vectorize برای سرعت بیشتر بهره ببرید و دقت اعشاری (میلی‌ثانیه) را با گردکردن یا تقسیم مناسب مدیریت کنید؛ توجه داشته باشید که datetime.fromtimestamp به زمان محلی برمی‌گردد و برای زمان UTC از datetime.utcfromtimestamp یا fromtimestamp با پارامتر timezone.utc استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:19
دسته بندی ها: Python Python for beginner
arash در 221 روز قبل ساعت 13:41

نکته مهم این است که datetime.fromtimestamp به زمان محلی تبدیل می‌کند، پس برای زمان UTC از datetime.utcfromtimestamp یا استفاده از timezone.utc با fromtimestamp بهره ببرید. برای خروجی ISO می‌توانید از isoformat() استفاده کنید یا با strftime فرمت را دقیقاً مثل '%Y-%m-%dT%H:%M:%S' تعیین کنید. برای محاسبه اختلاف بین دو timestamp متوالی، delta = dt2 - dt1 است و با delta.total_seconds() می‌توانید ثانیه (یا میلی‌ثانیه با ضرب 1000) دریافت کنید. اگر با داده‌های بزرگ سروکار دارید، از لیست‌کامپریشن یا numpy برای سرعت استفاده کنید و به دقت اعشاری و گرد کردن مناسب توجه کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری