یونکس ٹائم اسٹیمپ سے تاریخ کنورٹر: 12/24 گھنٹوں کی شکل کی حمایت
یونکس ٹائم اسٹیمپ کو انسانی پڑھنے کے قابل تاریخوں اور اوقات میں تبدیل کریں۔ اس سادہ، صارف دوست کنورٹر ٹول کے ساتھ 12 گھنٹے اور 24 گھنٹے کی شکلوں میں سے انتخاب کریں۔
یونکس ٹائم اسٹیمپ کنورٹر
تبدیل شدہ تاریخ اور وقت
دستاویزات
یونکس ٹائم اسٹیمپ کنورٹر
تعارف
یونکس ٹائم اسٹیمپ (جسے POSIX وقت یا ایپوک وقت بھی کہا جاتا ہے) وقت کے ایک نقطے کی وضاحت کرنے کے لیے ایک نظام ہے۔ یہ 1 جنوری 1970 (آدھی رات UTC/GMT) کے بعد گزرے ہوئے سیکنڈز کی تعداد ہے، چھلانگ کے سیکنڈز کو شمار کیے بغیر۔ یونکس ٹائم اسٹیمپ کمپیوٹر سسٹمز اور پروگرامنگ زبانوں میں بڑے پیمانے پر استعمال ہوتے ہیں کیونکہ یہ مخصوص لمحے کی ایک جامع، زبان سے آزاد نمائندگی فراہم کرتے ہیں۔
یہ کنورٹر آپ کو ایک یونکس ٹائم اسٹیمپ کو انسانی پڑھنے کے قابل تاریخ اور وقت کی شکل میں تبدیل کرنے کی اجازت دیتا ہے۔ یہ مختلف علاقائی اور ذاتی ترجیحات کو پورا کرنے کے لیے 12 گھنٹے (AM/PM) اور 24 گھنٹے کے وقت کے دونوں فارمیٹس کی حمایت کرتا ہے۔
یونکس ٹائم اسٹیمپ کیسے کام کرتا ہے
یونکس ٹائم اسٹیمپ یونکس ایپوک (1 جنوری 1970، 00:00:00 UTC) کے بعد گزرے ہوئے سیکنڈز کی تعداد کے طور پر شمار کیا جاتا ہے۔ یہ انہیں وقت کے فرق کا حساب لگانے اور تاریخوں کو ایک جامع شکل میں ذخیرہ کرنے کے لیے خاص طور پر مفید بناتا ہے۔
یونکس ٹائم اسٹیمپ سے کیلنڈر کی تاریخ میں تبدیلی کے لیے ریاضیاتی تبدیلی میں کئی مراحل شامل ہیں:
- یونکس ایپوک (1 جنوری 1970، 00:00:00 UTC) کے ساتھ شروع کریں
- ٹائم اسٹیمپ میں سیکنڈز کی تعداد شامل کریں
- چھلانگ کے سال، مختلف مہینوں کی لمبائی، اور دیگر کیلنڈر کی پیچیدگیوں کا حساب لگائیں
- اگر ضرورت ہو تو ٹائم زون کی ایڈجسٹمنٹ کریں
مثال کے طور پر، یونکس ٹائم اسٹیمپ 1609459200
جمعہ، 1 جنوری 2021، 00:00:00 UTC کی نمائندگی کرتا ہے۔
تبدیلی کا فارمولا اس طرح بیان کیا جا سکتا ہے:
زیادہ تر پروگرامنگ زبانیں اور آپریٹنگ سسٹمز اس تبدیلی کو سنبھالنے کے لیے بلٹ ان فنکشنز فراہم کرتے ہیں، جو پیچیدہ کیلنڈر کی حسابات کو چھپاتے ہیں۔
وقت کے فارمیٹ کے اختیارات
یہ کنورٹر دو وقت کے فارمیٹ کے اختیارات پیش کرتا ہے:
-
24 گھنٹے کا فارمیٹ (جسے کبھی کبھار "فوجی وقت" بھی کہا جاتا ہے): گھنٹے 0 سے 23 تک ہوتے ہیں، اور AM/PM کی کوئی وضاحت نہیں ہوتی۔ مثال کے طور پر، 3:00 PM کو 15:00 کے طور پر ظاہر کیا جاتا ہے۔
-
12 گھنٹے کا فارمیٹ: گھنٹے 1 سے 12 تک ہوتے ہیں، آدھی رات سے دوپہر تک کے لیے AM (ante meridiem) اور دوپہر سے آدھی رات تک کے لیے PM (post meridiem) ہوتا ہے۔ مثال کے طور پر، 24 گھنٹے کے فارمیٹ میں 15:00 کو 3:00 PM کے طور پر ظاہر کیا جاتا ہے۔
ان فارمیٹس کے درمیان انتخاب بنیادی طور پر علاقائی روایات اور ذاتی ترجیحات کا معاملہ ہے:
- 24 گھنٹے کا فارمیٹ زیادہ تر یورپ، لاطینی امریکہ، اور ایشیا میں استعمال ہوتا ہے، نیز دنیا بھر میں سائنسی، فوجی، اور طبی سیاق و سباق میں۔
- 12 گھنٹے کا فارمیٹ روزمرہ کے استعمال کے لیے امریکہ، کینیڈا، آسٹریلیا، اور کچھ دیگر انگریزی بولنے والے ممالک میں عام ہے۔
کنارے کے کیسز اور حدود
یونکس ٹائم اسٹیمپس کے ساتھ کام کرتے وقت، کئی کنارے کے کیسز اور حدود سے آگاہ ہونا ضروری ہے:
-
منفی ٹائم اسٹیمپس: یہ 1 جنوری 1970 سے پہلے کی تاریخوں کی نمائندگی کرتے ہیں۔ اگرچہ ریاضی کے لحاظ سے درست ہیں، لیکن کچھ سسٹمز منفی ٹائم اسٹیمپس کو صحیح طریقے سے سنبھال نہیں سکتے۔
-
سال 2038 کا مسئلہ: یونکس ٹائم اسٹیمپس اکثر 32 بٹ سائنڈ انٹیجرز کے طور پر ذخیرہ کیے جاتے ہیں، جو 19 جنوری 2038 کو اوور فلو ہو جائیں گے۔ اس کے بعد، 32 بٹ سسٹمز صحیح طریقے سے اوقات کی نمائندگی کرنے میں ناکام رہیں گے جب تک کہ انہیں بڑے انٹیجر کی قسم استعمال کرنے کے لیے تبدیل نہ کیا جائے۔
-
انتہائی بڑے ٹائم اسٹیمپس: بہت دور کی مستقبل کی تاریخیں بعض سسٹمز میں نمائندگی نہیں کی جا سکتیں، یا غیر متوازن طریقے سے سنبھالی جا سکتی ہیں۔
-
چھلانگ کے سیکنڈ: یونکس وقت چھلانگ کے سیکنڈز کا حساب نہیں رکھتا، جو کبھی کبھار UTC میں زمین کی غیر باقاعدہ گردش کے لیے شامل کیے جاتے ہیں۔ اس کا مطلب ہے کہ یونکس وقت فلکیاتی وقت کے ساتھ درست طور پر ہم آہنگ نہیں ہے۔
-
ٹائم زون کی غور و فکر: یونکس ٹائم اسٹیمپس لمحات کو UTC میں ظاہر کرتے ہیں۔ مقامی وقت میں تبدیل کرنے کے لیے اضافی ٹائم زون کی معلومات کی ضرورت ہوتی ہے۔
-
دن کی بچت کا وقت: ٹائم اسٹیمپس کو مقامی وقت میں تبدیل کرتے وقت، دن کی بچت کے وقت کی تبدیلیوں کی پیچیدگیوں پر غور کرنا ضروری ہے۔
استعمال کے کیسز
یونکس ٹائم اسٹیمپس کمپیوٹنگ اور ڈیٹا انتظامیہ میں متعدد ایپلی کیشنز میں استعمال ہوتے ہیں:
-
ڈیٹا بیس ریکارڈ: ٹائم اسٹیمپس عام طور پر یہ ریکارڈ کرنے کے لیے استعمال ہوتے ہیں کہ اندراجات کب بنائے گئے یا ترمیم کیے گئے۔
-
ویب ڈویلپمنٹ: HTTP ہیڈرز، کوکیز، اور کیشنگ کے طریقہ کار اکثر یونکس ٹائم اسٹیمپس کا استعمال کرتے ہیں۔
-
لاگ فائلیں: سسٹم لاگ عام طور پر واقعات کو درست ترتیب میں ریکارڈ کرنے کے لیے یونکس ٹائم اسٹیمپس کے ساتھ ریکارڈ کرتے ہیں۔
-
ورژن کنٹرول سسٹمز: Git اور دیگر VCS ٹائم اسٹیمپس کا استعمال کرتے ہیں تاکہ یہ ریکارڈ کیا جا سکے کہ کمیٹس کب کی گئیں۔
-
API جوابات: بہت سے ویب APIs اپنے جوابات میں ٹائم اسٹیمپس شامل کرتے ہیں تاکہ یہ اشارہ کیا جا سکے کہ ڈیٹا کب تیار کیا گیا یا وسائل کب آخری بار ترمیم کیے گئے۔
-
فائل کے نظام: فائل کی تخلیق اور ترمیم کے اوقات اکثر یونکس ٹائم اسٹیمپس کے طور پر ذخیرہ کیے جاتے ہیں۔
-
سیشن کی انتظامیہ: ویب ایپلیکیشنز ٹائم اسٹیمپس کا استعمال کرتی ہیں تاکہ یہ طے کیا جا سکے کہ صارف کے سیشن کب ختم ہونے چاہئیں۔
-
ڈیٹا تجزیہ: ٹائم اسٹیمپس تجزیاتی ایپلیکیشنز میں وقتی ڈیٹا کے ساتھ کام کرنے کے لیے ایک معیاری طریقہ فراہم کرتے ہیں۔
متبادل
اگرچہ یونکس ٹائم اسٹیمپس بڑے پیمانے پر استعمال ہوتے ہیں، لیکن کچھ سیاق و سباق میں زیادہ موزوں وقت کی نمائندگی کی شکلیں ہیں:
-
ISO 8601: ایک معیاری سٹرنگ فارمیٹ (جیسے "2021-01-01T00:00:00Z") جو انسانی پڑھنے کے قابل ہے جبکہ ترتیب دینے کی صلاحیت کو برقرار رکھتا ہے۔ یہ ڈیٹا کے تبادلے اور صارف کے سامنے آنے والی ایپلی کیشنز کے لیے اکثر ترجیح دی جاتی ہے۔
-
RFC 3339: انٹرنیٹ پروٹوکول میں استعمال ہونے والا ISO 8601 کا ایک پروفائل، جس میں سخت فارمیٹنگ کی ضروریات ہیں۔
-
انسانی پڑھنے کے قابل فارمیٹس: مقامی تاریخ کی تاریں (جیسے "1 جنوری 2021") براہ راست صارف کے تعامل کے لیے زیادہ موزوں ہیں لیکن حساب کتاب کے لیے کم موزوں ہیں۔
-
مائیکروسافٹ FILETIME: ایک 64 بٹ قیمت جو 1601-01-01 کے بعد 100 نانو سیکنڈ کے وقفوں کی تعداد کی نمائندگی کرتی ہے، جو ونڈوز سسٹمز میں استعمال ہوتی ہے۔
-
جولین دن کا نمبر: فلکیات اور کچھ سائنسی ایپلی کیشنز میں استعمال ہوتا ہے، جو 4713 قبل مسیح سے دنوں کی گنتی کرتا ہے۔
وقت کے فارمیٹ کا انتخاب عوامل جیسے:
- درکار درستگی
- انسانی پڑھنے کی ضروریات
- ذخیرہ کرنے کی حدود
- موجودہ سسٹمز کے ساتھ ہم آہنگی
- تاریخوں کی رینج جس کی نمائندگی کی ضرورت ہے
تاریخ
یونکس وقت کا تصور یونکس آپریٹنگ سسٹم کی ترقی کے ساتھ شروع ہوا جو بیل لیبز میں 1960 کی دہائی اور 1970 کی دہائی کے اوائل میں ہوا۔ ایپوک کے طور پر 1 جنوری 1970 کا انتخاب کچھ حد تک بے ترتیب تھا لیکن اس وقت کے لیے عملی تھا—یہ دلچسپی کی تاریخوں کے لیے ذخیرہ کرنے کی ضروریات کو کم کرنے کے لیے حالیہ تھا لیکن تاریخی ڈیٹا کے لیے مفید ہونے کے لیے کافی دور تھا۔
اصل نفاذ نے سیکنڈز کی تعداد کو ذخیرہ کرنے کے لیے 32 بٹ سائنڈ انٹیجر کا استعمال کیا، جو اس وقت یونکس سسٹمز کی متوقع عمر کے لیے کافی تھا۔ تاہم، اس فیصلے نے سال 2038 کے مسئلے (کبھی کبھار "Y2K38" یا "یونکس صدی کا بگ" کہا جاتا ہے) کی وجہ بنی، کیونکہ 32 بٹ سائنڈ انٹیجرز صرف 1 جنوری 2038 (03:14:07 UTC) تک کی تاریخوں کی نمائندگی کر سکتے ہیں۔
جیسے جیسے یونکس اور یونکس جیسے آپریٹنگ سسٹمز کی مقبولیت بڑھتی گئی، یونکس ٹائم اسٹیمپ کمپیوٹنگ میں ایک غیر رسمی معیار بن گیا۔ اسے متعدد پروگرامنگ زبانوں، ڈیٹا بیس، اور ایپلی کیشنز نے اپنایا، جو اپنے اصل یونکس ماحول سے بہت آگے بڑھ گیا۔
جدید سسٹمز میں بڑھتی ہوئی تعداد میں 64 بٹ انٹیجرز کو ٹائم اسٹیمپس کے لیے استعمال کیا جاتا ہے، جو ایپوک سے تقریباً 292 ارب سالوں کی نمائندگی کی حد کو بڑھاتا ہے، جس سے سال 2038 کے مسئلے کو مؤثر طریقے سے حل کیا جا رہا ہے۔ تاہم، وراثتی سسٹمز اور ایپلی کیشنز اب بھی خطرے میں ہو سکتی ہیں۔
یونکس ٹائم اسٹیمپ کی سادگی اور افادیت نے اس کی موجودگی کو یقینی بنایا ہے، حالانکہ زیادہ ترقی یافتہ وقت کی نمائندگی کی شکلیں تیار کی گئی ہیں۔ یہ کمپیوٹنگ میں ایک بنیادی تصور کے طور پر جاری رہتا ہے، ہمارے ڈیجیٹل انفراسٹرکچر کی بہت سی بنیادوں کو سہارا دیتا ہے۔
کوڈ کے نمونے
یہاں مختلف پروگرامنگ زبانوں میں یونکس ٹائم اسٹیمپس کو انسانی پڑھنے کے قابل تاریخوں میں تبدیل کرنے کے طریقے کے نمونے ہیں:
1// جاوا اسکرپٹ ٹائم اسٹیمپ تبدیلی
2function convertUnixTimestamp(timestamp, use12Hour = false) {
3 // ایک نئی تاریخ کی شے بنائیں (جاوا اسکرپٹ ملی سیکنڈز کا استعمال کرتا ہے)
4 const date = new Date(timestamp * 1000);
5
6 // فارمیٹ کے اختیارات
7 const options = {
8 year: 'numeric',
9 month: 'long',
10 day: 'numeric',
11 weekday: 'long',
12 hour: use12Hour ? 'numeric' : '2-digit',
13 minute: '2-digit',
14 second: '2-digit',
15 hour12: use12Hour
16 };
17
18 // مقامی فارمیٹنگ کا استعمال کرتے ہوئے سٹرنگ میں تبدیل کریں
19 return date.toLocaleString(undefined, options);
20}
21
22// مثال کا استعمال
23const timestamp = 1609459200; // 1 جنوری 2021 00:00:00 UTC
24console.log(convertUnixTimestamp(timestamp, false)); // 24 گھنٹے کا فارمیٹ
25console.log(convertUnixTimestamp(timestamp, true)); // 12 گھنٹے کا فارمیٹ
26
1# پائتھن ٹائم اسٹیمپ تبدیلی
2import datetime
3
4def convert_unix_timestamp(timestamp, use_12hour=False):
5 # یونکس ٹائم اسٹیمپ کو تاریخ کی شے میں تبدیل کریں
6 date = datetime.datetime.fromtimestamp(timestamp)
7
8 # تاریخ کی سٹرنگ کا فارمیٹ
9 if use_12hour:
10 format_string = "%A, %B %d, %Y %I:%M:%S %p" # 12 گھنٹے کا فارمیٹ AM/PM کے ساتھ
11 else:
12 format_string = "%A, %B %d, %Y %H:%M:%S" # 24 گھنٹے کا فارمیٹ
13
14 return date.strftime(format_string)
15
16# مثال کا استعمال
17timestamp = 1609459200 # 1 جنوری 2021 00:00:00 UTC
18print(convert_unix_timestamp(timestamp, False)) # 24 گھنٹے کا فارمیٹ
19print(convert_unix_timestamp(timestamp, True)) # 12 گھنٹے کا فارمیٹ
20
1<?php
2// پی ایچ پی ٹائم اسٹیمپ تبدیلی
3function convertUnixTimestamp($timestamp, $use12Hour = false) {
4 // فارمیٹ کی سٹرنگ
5 $formatString = $use12Hour
6 ? 'l, F j, Y g:i:s A' // 12 گھنٹے کا فارمیٹ AM/PM کے ساتھ
7 : 'l, F j, Y H:i:s'; // 24 گھنٹے کا فارمیٹ
8
9 // تاریخ کو تبدیل اور فارمیٹ کریں
10 return date($formatString, $timestamp);
11}
12
13// مثال کا استعمال
14$timestamp = 1609459200; // 1 جنوری 2021 00:00:00 UTC
15echo convertUnixTimestamp($timestamp, false) . "\n"; // 24 گھنٹے کا فارمیٹ
16echo convertUnixTimestamp($timestamp, true) . "\n"; // 12 گھنٹے کا فارمیٹ
17?>
18
1// جاوا ٹائم اسٹیمپ تبدیلی
2import java.time.Instant;
3import java.time.LocalDateTime;
4import java.time.ZoneId;
5import java.time.format.DateTimeFormatter;
6
7public class UnixTimestampConverter {
8 public static String convertUnixTimestamp(long timestamp, boolean use12Hour) {
9 // یونکس ٹائم اسٹیمپ کو انسٹنٹ میں تبدیل کریں، پھر لوکل ڈیٹ ٹائم میں
10 Instant instant = Instant.ofEpochSecond(timestamp);
11 LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
12
13 // مطلوبہ فارمیٹ کے مطابق فارمیٹر بنائیں
14 DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
15 use12Hour ? "EEEE, MMMM d, yyyy h:mm:ss a" : "EEEE, MMMM d, yyyy HH:mm:ss"
16 );
17
18 // تاریخ کو فارمیٹ کریں
19 return dateTime.format(formatter);
20 }
21
22 public static void main(String[] args) {
23 long timestamp = 1609459200; // 1 جنوری 2021 00:00:00 UTC
24 System.out.println(convertUnixTimestamp(timestamp, false)); // 24 گھنٹے کا فارمیٹ
25 System.out.println(convertUnixTimestamp(timestamp, true)); // 12 گھنٹے کا فارمیٹ
26 }
27}
28
1// سی# ٹائم اسٹیمپ تبدیلی
2using System;
3
4class UnixTimestampConverter
5{
6 public static string ConvertUnixTimestamp(long timestamp, bool use12Hour)
7 {
8 // یونکس ٹائم اسٹیمپ کو تاریخ اور وقت میں تبدیل کریں
9 // یونکس ٹائم اسٹیمپ 1970-01-01 کے بعد سیکنڈز ہیں
10 DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
11
12 // 12 گھنٹے یا 24 گھنٹے کی ترجیحات کے مطابق فارمیٹ کی سٹرنگ
13 string formatString = use12Hour
14 ? "dddd, MMMM d, yyyy h:mm:ss tt" // 12 گھنٹے کا فارمیٹ AM/PM کے ساتھ
15 : "dddd, MMMM d, yyyy HH:mm:ss"; // 24 گھنٹے کا فارمیٹ
16
17 // فارمیٹ کردہ تاریخ کی سٹرنگ واپس کریں
18 return dateTime.ToString(formatString);
19 }
20
21 static void Main()
22 {
23 long timestamp = 1609459200; // 1 جنوری 2021 00:00:00 UTC
24 Console.WriteLine(ConvertUnixTimestamp(timestamp, false)); // 24 گھنٹے کا فارمیٹ
25 Console.WriteLine(ConvertUnixTimestamp(timestamp, true)); // 12 گھنٹے کا فارمیٹ
26 }
27}
28
1# روبی ٹائم اسٹیمپ تبدیلی
2require 'time'
3
4def convert_unix_timestamp(timestamp, use_12hour = false)
5 # یونکس ٹائم اسٹیمپ کو وقت کی شے میں تبدیل کریں
6 time = Time.at(timestamp)
7
8 # 12 گھنٹے یا 24 گھنٹے کی ترجیحات کے مطابق فارمیٹ
9 if use_12hour
10 time.strftime("%A, %B %d, %Y %I:%M:%S %p") # 12 گھنٹے کا فارمیٹ AM/PM کے ساتھ
11 else
12 time.strftime("%A, %B %d, %Y %H:%M:%S") # 24 گھنٹے کا فارمیٹ
13 end
14end
15
16# مثال کا استعمال
17timestamp = 1609459200 # 1 جنوری 2021 00:00:00 UTC
18puts convert_unix_timestamp(timestamp, false) # 24 گھنٹے کا فارمیٹ
19puts convert_unix_timestamp(timestamp, true) # 12 گھنٹے کا فارمیٹ
20
1// گو ٹائم اسٹیمپ تبدیلی
2package main
3
4import (
5 "fmt"
6 "time"
7)
8
9func convertUnixTimestamp(timestamp int64, use12Hour bool) string {
10 // یونکس ٹائم اسٹیمپ کو وقت میں تبدیل کریں
11 t := time.Unix(timestamp, 0)
12
13 // 12 گھنٹے یا 24 گھنٹے کی ترجیحات کے مطابق فارمیٹ کی سٹرنگ
14 formatString := "Monday, January 2, 2006 "
15 if use12Hour {
16 formatString += "3:04:05 PM" // 12 گھنٹے کا فارمیٹ AM/PM کے ساتھ
17 } else {
18 formatString += "15:04:05" // 24 گھنٹے کا فارمیٹ
19 }
20
21 // فارمیٹ کردہ وقت واپس کریں
22 return t.Format(formatString)
23}
24
25func main() {
26 timestamp := int64(1609459200) // 1 جنوری 2021 00:00:00 UTC
27 fmt.Println(convertUnixTimestamp(timestamp, false)) // 24 گھنٹے کا فارمیٹ
28 fmt.Println(convertUnixTimestamp(timestamp, true)) // 12 گھنٹے کا فارمیٹ
29}
30
1// سوئفٹ ٹائم اسٹیمپ تبدیلی
2import Foundation
3
4func convertUnixTimestamp(_ timestamp: Int, use12Hour: Bool) -> String {
5 // یونکس ٹائم اسٹیمپ سے تاریخ بنائیں
6 let date = Date(timeIntervalSince1970: TimeInterval(timestamp))
7
8 // تاریخ کے فارمیٹر بنائیں
9 let formatter = DateFormatter()
10 formatter.dateStyle = .full
11
12 // 12 گھنٹے یا 24 گھنٹے کی ترجیحات کے مطابق وقت کا اندازہ لگائیں
13 if use12Hour {
14 formatter.timeStyle = .medium
15 formatter.amSymbol = "AM"
16 formatter.pmSymbol = "PM"
17 } else {
18 formatter.timeStyle = .medium
19 formatter.dateFormat = formatter.dateFormat?.replacingOccurrences(of: "h:mm:ss a", with: "HH:mm:ss")
20 }
21
22 // فارمیٹ کردہ تاریخ واپس کریں
23 return formatter.string(from: date)
24}
25
26// مثال کا استعمال
27let timestamp = 1609459200 // 1 جنوری 2021 00:00:00 UTC
28print(convertUnixTimestamp(timestamp, use12Hour: false)) // 24 گھنٹے کا فارمیٹ
29print(convertUnixTimestamp(timestamp, use12Hour: true)) // 12 گھنٹے کا فارمیٹ
30
1# آر ٹائم اسٹیمپ تبدیلی
2convert_unix_timestamp <- function(timestamp, use_12hour = FALSE) {
3 # یونکس ٹائم اسٹیمپ کو POSIXct تاریخ اور وقت میں تبدیل کریں
4 date_time <- as.POSIXct(timestamp, origin = "1970-01-01", tz = "UTC")
5
6 # 12 گھنٹے یا 24 گھنٹے کی ترجیحات کے مطابق فارمیٹ
7 if (use_12hour) {
8 format_string <- "%A, %B %d, %Y %I:%M:%S %p" # 12 گھنٹے کا فارمیٹ AM/PM کے ساتھ
9 } else {
10 format_string <- "%A, %B %d, %Y %H:%M:%S" # 24 گھنٹے کا فارمیٹ
11 }
12
13 # فارمیٹ کردہ تاریخ کی سٹرنگ واپس کریں
14 format(date_time, format_string)
15}
16
17# مثال کا استعمال
18timestamp <- 1609459200 # 1 جنوری 2021 00:00:00 UTC
19cat(convert_unix_timestamp(timestamp, FALSE), "\n") # 24 گھنٹے کا فارمیٹ
20cat(convert_unix_timestamp(timestamp, TRUE), "\n") # 12 گھنٹے کا فارمیٹ
21
1% میٹلیب ٹائم اسٹیمپ تبدیلی
2function formattedDate = convertUnixTimestamp(timestamp, use12Hour)
3 % یونکس ٹائم اسٹیمپ کو میٹلیب تاریخ/وقت میں تبدیل کریں
4 % میٹلیب کی تاریخیں 1900-01-01 کے بعد کے دن ہیں، 1 = 1900-01-01
5 % یونکس ٹائم اسٹیمپ 1970-01-01 کے بعد سیکنڈز ہیں
6
7 % پہلے میٹلیب کی تاریخ کی شکل میں تبدیل کریں
8 % 25569 1900-01-01 اور 1970-01-01 کے درمیان دنوں کی تعداد ہے
9 excelDate = (timestamp / 86400) + 25569;
10
11 % 12 گھنٹے یا 24 گھنٹے کی ترجیحات کے مطابق فارمیٹ کی سٹرنگ
12 if use12Hour
13 formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy h:mm:ss AM/PM');
14 else
15 formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy hh:mm:ss');
16 end
17end
18
19% ورکشیٹ میں استعمال:
20% =ConvertUnixTimestamp(1609459200, TRUE) ' 12 گھنٹے کا فارمیٹ
21% =ConvertUnixTimestamp(1609459200, FALSE) ' 24 گھنٹے کا فارمیٹ
22
کنارے کے کیسز کو سنبھالنا
یونکس ٹائم اسٹیمپس کے ساتھ کام کرتے وقت، یہ ضروری ہے کہ کنارے کے کیسز کو درست طریقے سے سنبھالا جائے۔ یہاں کچھ عام کنارے کے کیسز کو سنبھالنے کے طریقے کے نمونے ہیں:
1// جاوا اسکرپٹ کنارے کے کیسز کا انتظام
2function safeConvertTimestamp(timestamp, use12Hour = false) {
3 // چیک کریں کہ آیا ٹائم اسٹیمپ درست ہے
4 if (timestamp === undefined || timestamp === null || isNaN(timestamp)) {
5 return "غلط ٹائم اسٹیمپ";
6 }
7
8 // منفی ٹائم اسٹیمپس کے لیے چیک کریں (1970 سے پہلے کی تاریخیں)
9 if (timestamp < 0) {
10 // کچھ براؤزر منفی ٹائم اسٹیمپس کو صحیح طریقے سے سنبھال نہیں سکتے
11 // 1970 سے پہلے کی تاریخوں کے لیے زیادہ مضبوط طریقہ استعمال کریں
12 const date = new Date(timestamp * 1000);
13 if (isNaN(date.getTime())) {
14 return "غلط تاریخ (1970 سے پہلے)";
15 }
16 }
17
18 // Y2K38 مسئلے کے لیے چیک کریں (32 بٹ سسٹمز کے لیے)
19 const maxInt32 = 2147483647; // 32 بٹ سائنڈ انٹیجر کی زیادہ سے زیادہ قیمت
20 if (timestamp > maxInt32) {
21 // جدید جاوا اسکرپٹ میں بہت بڑے ٹائم اسٹیمپس کے لیے BigInt استعمال کرنے پر غور کریں
22 console.warn("ٹائم اسٹیمپ 32 بٹ انٹیجر کی حد سے تجاوز کر گیا ہے (Y2K38 مسئلہ)");
23 }
24
25 // معمول کی تبدیلی کے ساتھ آگے بڑھیں
26 try {
27 const date = new Date(timestamp * 1000);
28 const options = {
29 year: 'numeric',
30 month: 'long',
31 day: 'numeric',
32 weekday: 'long',
33 hour: use12Hour ? 'numeric' : '2-digit',
34 minute: '2-digit',
35 second: '2-digit',
36 hour12: use12Hour
37 };
38 return date.toLocaleString(undefined, options);
39 } catch (error) {
40 return "ٹائم اسٹیمپ کو تبدیل کرنے میں خرابی: " + error.message;
41 }
42}
43
حوالہ جات
-
"یونکس وقت۔" وکیپیڈیا، وکیمیڈیا فاؤنڈیشن، https://en.wikipedia.org/wiki/Unix_time
-
"سال 2038 کا مسئلہ۔" وکیپیڈیا، وکیمیڈیا فاؤنڈیشن، https://en.wikipedia.org/wiki/Year_2038_problem
-
اولسن، آرٹھر ڈیوڈ۔ "کیلنڈر کے وقت کی پیچیدگیاں۔" اوپن گروپ، https://www.usenix.org/legacy/events/usenix01/full_papers/olson/olson.pdf
-
"ISO 8601۔" وکیپیڈیا، وکیمیڈیا فاؤنڈیشن، https://en.wikipedia.org/wiki/ISO_8601
-
"RFC 3339: انٹرنیٹ پر تاریخ اور وقت: ٹائم اسٹیمپس۔" انٹرنیٹ انجینئرنگ ٹاسک فورس (IETF)، https://tools.ietf.org/html/rfc3339
-
کرننگھن، برائن و۔، اور ڈینس ایم۔ رچے۔ "سی پروگرامنگ زبان۔" پرینٹیس ہال، 1988۔
رائے
اس ٹول کے بارے میں رائے دینے کے لیے رائے کے ٹوسٹ پر کلک کریں
متعلقہ ٹولز
مزید ٹولز دریافت کریں جو آپ کے ورک فلو کے لیے مفید ہو سکتے ہیں