Whiz Tools

यूनिक्स टाइमस्टॅम्प कन्वर्टर

Unix времевият печат е броят на секундите от 1 януари 1970 г. (UTC)

कन्वर्ट केलेली तारीख आणि वेळ

युनिक्स टाइमस्टॅम्प रूपांतरक

परिचय

युनिक्स टाइमस्टॅम्प (ज्याला POSIX वेळ किंवा Epoch वेळ म्हणूनही ओळखले जाते) हा वेळेच्या एका बिंदूचे वर्णन करण्यासाठी एक प्रणाली आहे. हे 1 जानेवारी 1970 (मध्यान्ह UTC/GMT) पासून गेलेले सेकंद आहेत, उडीचे सेकंद मोजत नाहीत. युनिक्स टाइमस्टॅम्प संगणक प्रणालींमध्ये आणि प्रोग्रामिंग भाषांमध्ये मोठ्या प्रमाणावर वापरले जातात कारण ते विशिष्ट क्षणाचे संक्षिप्त, भाषाशुद्ध प्रतिनिधित्व प्रदान करतात.

हा रूपांतरक तुम्हाला युनिक्स टाइमस्टॅम्पला मानव वाचनायोग्य दिनांक आणि वेळ फॉरमॅटमध्ये रूपांतरित करण्याची परवानगी देतो. हे 12-तास (AM/PM) आणि 24-तास वेळ फॉरमॅट दोन्हीला समर्थन देते जे विविध प्रादेशिक आणि वैयक्तिक आवडीनुसार अनुकूल आहे.

युनिक्स टाइमस्टॅम्प कसे कार्य करतात

युनिक्स टाइमस्टॅम्प युनिक्स एपोक (1 जानेवारी 1970, 00:00:00 UTC) पासून गेलेले सेकंद म्हणून गणना केले जातात. त्यामुळे ते वेळेच्या फरकांची गणना करण्यासाठी आणि संक्षिप्त स्वरूपात तारखा संग्रहित करण्यासाठी विशेषतः उपयुक्त आहेत.

युनिक्स टाइमस्टॅम्पला कॅलेंडर दिनांकात रूपांतरित करण्याची गणितीय प्रक्रिया अनेक चरणांमध्ये होते:

  1. युनिक्स एपोक (1 जानेवारी 1970, 00:00:00 UTC) पासून प्रारंभ करा
  2. टाइमस्टॅम्पमधील सेकंदांची संख्या जोडा
  3. उडीच्या वर्षांची, विविध महिन्यांच्या लांबीची आणि इतर कॅलेंडरच्या गुंतागुंतांची गणना करा
  4. आवश्यक असल्यास टाइमझोन समायोजन लागू करा

उदाहरणार्थ, युनिक्स टाइमस्टॅम्प 1609459200 म्हणजे शुक्रवार, 1 जानेवारी 2021, 00:00:00 UTC.

रूपांतरण सूत्र असे व्यक्त केले जाऊ शकते:

तारीख=युनिक्स एपोक+टाइमस्टॅम्प (सेकंदांमध्ये)\text{तारीख} = \text{युनिक्स एपोक} + \text{टाइमस्टॅम्प (सेकंदांमध्ये)}

अधिकांश प्रोग्रामिंग भाषांमध्ये आणि ऑपरेटिंग सिस्टममध्ये या रूपांतरणाचे व्यवस्थापन करण्यासाठी अंतर्निहित कार्ये उपलब्ध आहेत, ज्यामुळे जटिल कॅलेंडर गणनांचा विचार करण्याची आवश्यकता नाही.

वेळ फॉरमॅट पर्याय

हा रूपांतरक दोन वेळ फॉरमॅट पर्याय प्रदान करतो:

  1. 24-तास फॉरमॅट (कधी कधी "सैन्य वेळ" म्हणूनही ओळखले जाते): तास 0 ते 23 पर्यंत असतात, आणि AM/PM चा उल्लेख नाही. उदाहरणार्थ, 3:00 PM ला 15:00 म्हणून दर्शवले जाते.

  2. 12-तास फॉरमॅट: तास 1 ते 12 पर्यंत असतात, मध्यरात्री ते दुपारी AM (ante meridiem) आणि दुपारी ते मध्यरात्री PM (post meridiem) असतात. उदाहरणार्थ, 24-तास फॉरमॅटमध्ये 15:00 ला 3:00 PM म्हणून दर्शवले जाते.

या फॉरमॅट्समधील निवड मुख्यत: प्रादेशिक परंपरा आणि वैयक्तिक आवडीनुसार असते:

  • 24-तास फॉरमॅट बहुतेक युरोप, लॅटिन अमेरिका आणि आशियामध्ये, तसेच वैज्ञानिक, सैन्य आणि वैद्यकीय संदर्भांमध्ये जगभरात सामान्यतः वापरला जातो.
  • 12-तास फॉरमॅट युनायटेड स्टेट्स, कॅनडा, ऑस्ट्रेलिया आणि काही इतर इंग्रजी बोलणाऱ्या देशांमध्ये दररोजच्या वापरासाठी प्रचलित आहे.

कडवट प्रकरणे आणि मर्यादा

युनिक्स टाइमस्टॅम्पसह काम करताना, काही कडवट प्रकरणे आणि मर्यादांविषयी जागरूक असणे महत्त्वाचे आहे:

  1. ऋणात्मक टाइमस्टॅम्प: हे युनिक्स एपोक (1 जानेवारी 1970) पूर्वीच्या तारखांचे प्रतिनिधित्व करतात. गणितीयदृष्ट्या वैध असले तरी, काही प्रणाली ऋणात्मक टाइमस्टॅम्प योग्यरित्या हाताळू शकत नाहीत.

  2. 2038 समस्या: युनिक्स टाइमस्टॅम्प बहुतेकदा 32-बिट साइन केलेल्या पूर्णांकांमध्ये संग्रहित केले जातात, जे 19 जानेवारी 2038 रोजी ओव्हरफ्लो होईल. यानंतर, 32-बिट प्रणाली वेळांचे योग्य प्रतिनिधित्व करण्यास असमर्थ असतील, जोपर्यंत त्यांना मोठ्या पूर्णांक प्रकार वापरण्यासाठी सुधारित केले जात नाही.

  3. अत्यंत मोठे टाइमस्टॅम्प: खूप दूरच्या भविष्यातील तारखा काही प्रणालींमध्ये प्रतिनिधित्व करण्यायोग्य असू शकत नाहीत, किंवा असमानपणे हाताळल्या जाऊ शकतात.

  4. उडीचे सेकंद: युनिक्स वेळ उडीचे सेकंद लक्षात घेत नाही, जे UTC मध्ये पृथ्वीच्या असमान फिरण्याच्या भरपाईसाठी कधीकधी जोडले जातात. यामुळे युनिक्स वेळ खगोल वेळेसह अचूकपणे समक्रमित होत नाही.

  5. टाइमझोन विचार: युनिक्स टाइमस्टॅम्प क्षणांचे प्रतिनिधित्व UTC मध्ये करतात. स्थानिक वेळेत रूपांतरित करण्यासाठी अतिरिक्त टाइमझोन माहिती आवश्यक आहे.

  6. डेयलाईट सेव्हिंग टाइम: टाइमस्टॅम्प्स स्थानिक वेळेत रूपांतरित करताना, डेयलाईट सेव्हिंग टाइम संक्रमणांच्या गुंतागुंतांचा विचार करणे आवश्यक आहे.

वापर प्रकरणे

युनिक्स टाइमस्टॅम्प संगणक आणि डेटा व्यवस्थापनातील अनेक अनुप्रयोगांमध्ये वापरले जातात:

  1. डेटाबेस रेकॉर्ड: टाइमस्टॅम्प सामान्यतः नोंदी तयार केल्या किंवा सुधारित झाल्या तेव्हा नोंदवण्यासाठी वापरले जातात.

  2. वेब विकास: HTTP हेडर, कुकीज, आणि कॅशिंग यांत्रणांमध्ये युनिक्स टाइमस्टॅम्प वापरले जातात.

  3. लॉग फाइल्स: प्रणाली लॉग सामान्यतः घटनांची नोंद ठेवण्यासाठी युनिक्स टाइमस्टॅम्पसह नोंदवतात.

  4. आवृत्ती नियंत्रण प्रणाली: Git आणि इतर VCS टाइमस्टॅम्प वापरतात जेव्हा कमिट्स केल्या जातात.

  5. API प्रतिसाद: अनेक वेब API त्यांच्या प्रतिसादांमध्ये टाइमस्टॅम्प समाविष्ट करतात जेव्हा डेटा तयार केला जातो किंवा संसाधने शेवटच्या वेळेस सुधारित केल्या जातात.

  6. फाइल सिस्टम: फाइल तयार करण्याची आणि सुधारित करण्याची वेळ सामान्यतः युनिक्स टाइमस्टॅम्प म्हणून संग्रहित केली जाते.

  7. सत्र व्यवस्थापन: वेब अनुप्रयोग टाइमस्टॅम्प वापरतात जेव्हा वापरकर्ता सत्रे संपुष्टात येणे आवश्यक आहे.

  8. डेटा विश्लेषण: टाइमस्टॅम्प विश्लेषण अनुप्रयोगांमध्ये तात्कालिक डेटासह कार्य करण्यासाठी मानकीकृत मार्ग प्रदान करतात.

पर्याय

जरी युनिक्स टाइमस्टॅम्प मोठ्या प्रमाणावर वापरले जातात, तरी काही विशिष्ट संदर्भांमध्ये अधिक योग्य असलेल्या वेळेच्या प्रतिनिधित्वाच्या स्वरूपांचा विचार केला जाऊ शकतो:

  1. ISO 8601: एक मानकीकृत स्ट्रिंग फॉरमॅट (उदा., "2021-01-01T00:00:00Z") जो मानव वाचनायोग्य आहे तरीही क्रमवारीत ठेवण्यायोग्य आहे. डेटा अदलाबदल आणि वापरकर्ता-समोरच्या अनुप्रयोगांसाठी हे सामान्यतः प्राधान्य दिले जाते.

  2. RFC 3339: इंटरनेट प्रोटोकॉलमध्ये वापरले जाणारे ISO 8601 चे एक प्रोफाइल, ज्यामध्ये अधिक कठोर स्वरूपन आवश्यकता आहेत.

  3. मानव वाचनायोग्य फॉरमॅट्स: स्थानिक दिनांक स्ट्रिंग्ज (उदा., "1 जानेवारी 2021") थेट वापरकर्ता संवादासाठी अधिक योग्य आहेत पण गणनांसाठी कमी उपयुक्त आहेत.

  4. Microsoft FILETIME: 64-बिट मूल्य, जे 1601-01-01 पासून 100-नॅनोसेकंदांच्या आंतरांची संख्या दर्शवते, Windows प्रणालींमध्ये वापरले जाते.

  5. जुलियन दिवस संख्या: खगोलशास्त्र आणि काही वैज्ञानिक अनुप्रयोगांमध्ये वापरले जाते, 4713 BCE पासूनच्या दिवसांची गणना करते.

वेळ फॉरमॅटच्या निवडीवर प्रभाव टाकणारे घटक आहेत:

  • आवश्यक अचूकता
  • मानव वाचनायोग्यतेची आवश्यकता
  • संग्रहण मर्यादा
  • विद्यमान प्रणालींसह सुसंगतता
  • प्रतिनिधित्व करण्याची आवश्यक तारखांची श्रेणी

इतिहास

युनिक्स वेळेचा संकल्पना युनिक्स ऑपरेटिंग सिस्टमच्या विकासासह बेल लॅब्समध्ये 1960 च्या दशकाच्या उत्तरार्धात आणि 1970 च्या सुरुवातीला उदयास आली. एपोक म्हणून 1 जानेवारी 1970 निवडणे काहीसे अनियमित होते, परंतु त्या वेळेस व्यावहारिक होते—हे लक्षात ठेवण्यासाठी आवश्यक तारखांच्या संग्रहणाची आवश्यकता कमी होती, परंतु ऐतिहासिक डेटासाठी उपयुक्त असण्यासाठी पुरेसे लांब होते.

मूळ कार्यान्वयनाने 32-बिट साइन केलेल्या पूर्णांकांचा वापर करून सेकंदांची संख्या संग्रहित केली, जे त्या वेळेस युनिक्स प्रणालींच्या अपेक्षित आयुष्यासाठी पुरेसे होते. तथापि, या निर्णयामुळे 2038 समस्या (कधी कधी "Y2K38" किंवा "युनिक्स सहस्त्रक बग" म्हणूनही ओळखले जाते) उद्भवला, कारण 32-बिट साइन केलेले पूर्णांक 1 जानेवारी 2038 (03:14:07 UTC) पर्यंतच्या तारखांचे प्रतिनिधित्व करू शकतात.

युनिक्स आणि युनिक्स-समान ऑपरेटिंग सिस्टम लोकप्रिय झाल्यानंतर, युनिक्स टाइमस्टॅम्प संगणक क्षेत्रात मानक बनला. याला अनेक प्रोग्रामिंग भाषा, डेटाबेस, आणि अनुप्रयोगांनी स्वीकारले, ज्यामुळे त्याचा युनिक्स पर्यावरणाच्या बाहेर विस्तार झाला.

आधुनिक प्रणालींमध्ये टाइमस्टॅम्पसाठी 64-बिट पूर्णांकांचा वापर वाढत आहे, जो एपोकपासून अंदाजे 292 अब्ज वर्षांच्या दोन्ही दिशांमध्ये प्रतिनिधित्व करण्याची श्रेणी वाढवतो, ज्यामुळे 2038 समस्या प्रभावीपणे सोडवली जाते. तथापि, वारसा प्रणालींमध्ये आणि अनुप्रयोगांमध्ये अद्याप असुरक्षितता असू शकते.

युनिक्स टाइमस्टॅम्पची साधेपणा आणि उपयुक्तता यामुळे अधिक विकसित केलेल्या वेळेच्या प्रतिनिधित्वाच्या स्वरूपांवर त्याची चालू प्रासंगिकता सुनिश्चित झाली आहे. हे संगणकात एक मूलभूत संकल्पना म्हणून राहते, ज्यामुळे आमच्या डिजिटल पायाभूत सुविधांचा आधार आहे.

कोड उदाहरणे

येथे विविध प्रोग्रामिंग भाषांमध्ये युनिक्स टाइमस्टॅम्पला मानव वाचनायोग्य तारखांमध्ये रूपांतरित करण्याचे उदाहरणे आहेत:

// जावास्क्रिप्ट टाइमस्टॅम्प रूपांतरण
function convertUnixTimestamp(timestamp, use12Hour = false) {
  // नवीन Date ऑब्जेक्ट तयार करा (जावास्क्रिप्ट मिलिसेकंद वापरते)
  const date = new Date(timestamp * 1000);
  
  // फॉरमॅट पर्याय
  const options = {
    year: 'numeric',
    month: 'long',
    day: 'numeric',
    weekday: 'long',
    hour: use12Hour ? 'numeric' : '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: use12Hour
  };
  
  // स्थानिक स्वरूपण वापरून स्ट्रिंगमध्ये रूपांतरित करा
  return date.toLocaleString(undefined, options);
}

// उदाहरण वापर
const timestamp = 1609459200; // 1 जानेवारी 2021 00:00:00 UTC
console.log(convertUnixTimestamp(timestamp, false)); // 24-तास फॉरमॅट
console.log(convertUnixTimestamp(timestamp, true));  // 12-तास फॉरमॅट
# पायथन टाइमस्टॅम्प रूपांतरण
import datetime

def convert_unix_timestamp(timestamp, use_12hour=False):
    # युनिक्स टाइमस्टॅम्पला datetime ऑब्जेक्टमध्ये रूपांतरित करा
    date = datetime.datetime.fromtimestamp(timestamp)
    
    # तारीख स्ट्रिंगचे फॉरमॅट
    if use_12hour:
        format_string = "%A, %B %d, %Y %I:%M:%S %p"  # 12-तास फॉरमॅट AM/PM सह
    else:
        format_string = "%A, %B %d, %Y %H:%M:%S"     # 24-तास फॉरमॅट
    
    return date.strftime(format_string)

# उदाहरण वापर
timestamp = 1609459200  # 1 जानेवारी 2021 00:00:00 UTC
print(convert_unix_timestamp(timestamp, False))  # 24-तास फॉरमॅट
print(convert_unix_timestamp(timestamp, True))   # 12-तास फॉरमॅट
<?php
// PHP टाइमस्टॅम्प रूपांतरण
function convertUnixTimestamp($timestamp, $use12Hour = false) {
    // फॉरमॅट स्ट्रिंग
    $formatString = $use12Hour 
        ? 'l, F j, Y g:i:s A'  // 12-तास फॉरमॅट AM/PM सह
        : 'l, F j, Y H:i:s';   // 24-तास फॉरमॅट
    
    // तारीख रूपांतरित करा आणि फॉरमॅट करा
    return date($formatString, $timestamp);
}

// उदाहरण वापर
$timestamp = 1609459200; // 1 जानेवारी 2021 00:00:00 UTC
echo convertUnixTimestamp($timestamp, false) . "\n"; // 24-तास फॉरमॅट
echo convertUnixTimestamp($timestamp, true) . "\n";  // 12-तास फॉरमॅट
?>
// जावा टाइमस्टॅम्प रूपांतरण
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class UnixTimestampConverter {
    public static String convertUnixTimestamp(long timestamp, boolean use12Hour) {
        // युनिक्स टाइमस्टॅम्पला Instant मध्ये रूपांतरित करा, नंतर LocalDateTime मध्ये
        Instant instant = Instant.ofEpochSecond(timestamp);
        LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
        
        // इच्छित फॉरमॅटवर आधारित फॉरमॅटर तयार करा
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
            use12Hour ? "EEEE, MMMM d, yyyy h:mm:ss a" : "EEEE, MMMM d, yyyy HH:mm:ss"
        );
        
        // तारीख फॉरमॅट करा
        return dateTime.format(formatter);
    }
    
    public static void main(String[] args) {
        long timestamp = 1609459200; // 1 जानेवारी 2021 00:00:00 UTC
        System.out.println(convertUnixTimestamp(timestamp, false)); // 24-तास फॉरमॅट
        System.out.println(convertUnixTimestamp(timestamp, true));  // 12-तास फॉरमॅट
    }
}
// C# टाइमस्टॅम्प रूपांतरण
using System;

class UnixTimestampConverter
{
    public static string ConvertUnixTimestamp(long timestamp, bool use12Hour)
    {
        // युनिक्स टाइमस्टॅम्पला DateTime मध्ये रूपांतरित करा
        // युनिक्स टाइमस्टॅम्प म्हणजे 1970-01-01 पासूनचे सेकंद
        DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
        
        // 12-तास किंवा 24-तास आवडीनुसार फॉरमॅट स्ट्रिंग सेट करा
        string formatString = use12Hour 
            ? "dddd, MMMM d, yyyy h:mm:ss tt"  // 12-तास फॉरमॅट AM/PM सह
            : "dddd, MMMM d, yyyy HH:mm:ss";   // 24-तास फॉरमॅट
        
        // फॉरमॅट केलेली तारीख परत करा
        return dateTime.ToString(formatString);
    }
    
    static void Main()
    {
        long timestamp = 1609459200; // 1 जानेवारी 2021 00:00:00 UTC
        Console.WriteLine(ConvertUnixTimestamp(timestamp, false)); // 24-तास फॉरमॅट
        Console.WriteLine(ConvertUnixTimestamp(timestamp, true));  // 12-तास फॉरमॅट
    }
}
# रुबी टाइमस्टॅम्प रूपांतरण
require 'time'

def convert_unix_timestamp(timestamp, use_12hour = false)
  # युनिक्स टाइमस्टॅम्पला Time ऑब्जेक्टमध्ये रूपांतरित करा
  time = Time.at(timestamp)
  
  # 12-तास किंवा 24-तास आवडीनुसार फॉरमॅट
  if use_12hour
    time.strftime("%A, %B %d, %Y %I:%M:%S %p")  # 12-तास फॉरमॅट AM/PM सह
  else
    time.strftime("%A, %B %d, %Y %H:%M:%S")     # 24-तास फॉरमॅट
  end
end

# उदाहरण वापर
timestamp = 1609459200  # 1 जानेवारी 2021 00:00:00 UTC
puts convert_unix_timestamp(timestamp, false)  # 24-तास फॉरमॅट
puts convert_unix_timestamp(timestamp, true)   # 12-तास फॉरमॅट
// गो टाइमस्टॅम्प रूपांतरण
package main

import (
    "fmt"
    "time"
)

func convertUnixTimestamp(timestamp int64, use12Hour bool) string {
    // युनिक्स टाइमस्टॅम्पला Time मध्ये रूपांतरित करा
    t := time.Unix(timestamp, 0)
    
    // 12-तास किंवा 24-तास आवडीनुसार फॉरमॅट स्ट्रिंग
    formatString := "Monday, January 2, 2006 "
    if use12Hour {
        formatString += "3:04:05 PM"  // 12-तास फॉरमॅट AM/PM सह
    } else {
        formatString += "15:04:05"    // 24-तास फॉरमॅट
    }
    
    // फॉरमॅट केलेला वेळ परत करा
    return t.Format(formatString)
}

func main() {
    timestamp := int64(1609459200) // 1 जानेवारी 2021 00:00:00 UTC
    fmt.Println(convertUnixTimestamp(timestamp, false)) // 24-तास फॉरमॅट
    fmt.Println(convertUnixTimestamp(timestamp, true))  // 12-तास फॉरमॅट
}
// स्विफ्ट टाइमस्टॅम्प रूपांतरण
import Foundation

func convertUnixTimestamp(_ timestamp: Int, use12Hour: Bool) -> String {
    // युनिक्स टाइमस्टॅम्पला Date मध्ये रूपांतरित करा
    let date = Date(timeIntervalSince1970: TimeInterval(timestamp))
    
    // DateFormatter तयार करा
    let formatter = DateFormatter()
    formatter.dateStyle = .full
    
    // 12-तास किंवा 24-तास आवडीनुसार वेळ शैली सेट करा
    if use12Hour {
        formatter.timeStyle = .medium
        formatter.amSymbol = "AM"
        formatter.pmSymbol = "PM"
    } else {
        formatter.timeStyle = .medium
        formatter.dateFormat = formatter.dateFormat?.replacingOccurrences(of: "h:mm:ss a", with: "HH:mm:ss")
    }
    
    // फॉरमॅट केलेली तारीख परत करा
    return formatter.string(from: date)
}

// उदाहरण वापर
let timestamp = 1609459200 // 1 जानेवारी 2021 00:00:00 UTC
print(convertUnixTimestamp(timestamp, use12Hour: false)) // 24-तास फॉरमॅट
print(convertUnixTimestamp(timestamp, use12Hour: true))  // 12-तास फॉरमॅट
# R टाइमस्टॅम्प रूपांतरण
convert_unix_timestamp <- function(timestamp, use_12hour = FALSE) {
  # युनिक्स टाइमस्टॅम्पला POSIXct datetime मध्ये रूपांतरित करा
  date_time <- as.POSIXct(timestamp, origin = "1970-01-01", tz = "UTC")
  
  # 12-तास किंवा 24-तास आवडीनुसार फॉरमॅट
  if (use_12hour) {
    format_string <- "%A, %B %d, %Y %I:%M:%S %p"  # 12-तास फॉरमॅट AM/PM सह
  } else {
    format_string <- "%A, %B %d, %Y %H:%M:%S"     # 24-तास फॉरमॅट
  }
  
  # फॉरमॅट केलेली तारीख स्ट्रिंग परत करा
  format(date_time, format_string)
}

# उदाहरण वापर
timestamp <- 1609459200  # 1 जानेवारी 2021 00:00:00 UTC
cat(convert_unix_timestamp(timestamp, FALSE), "\n")  # 24-तास फॉरमॅट
cat(convert_unix_timestamp(timestamp, TRUE), "\n")   # 12-तास फॉरमॅट
% MATLAB टाइमस्टॅम्प रूपांतरण
function formattedDate = convertUnixTimestamp(timestamp, use12Hour)
    % युनिक्स टाइमस्टॅम्पला MATLAB datetime मध्ये रूपांतरित करा
    % MATLAB तारीख 1900-01-01 पासूनचे दिवस आहेत, 1 = 1900-01-01
    % युनिक्स टाइमस्टॅम्प म्हणजे 1970-01-01 पासूनचे सेकंद
    
    % प्रथम Excel तारीख स्वरूपात रूपांतरित करा
    % 25569 हे 1900-01-01 आणि 1970-01-01 यांच्यातील दिवसांची संख्या आहे
    excelDate = (timestamp / 86400) + 25569;
    
    % 12-तास किंवा 24-तास आवडीनुसार फॉरमॅट स्ट्रिंग सेट करा
    if use12Hour
        formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy h:mm:ss AM/PM');
    else
        formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy hh:mm:ss');
    end
end

% उदाहरण वापर
timestamp = 1609459200;  % 1 जानेवारी 2021 00:00:00 UTC
disp(convertUnixTimestamp(timestamp, false))  % 24-तास फॉरमॅट
disp(convertUnixTimestamp(timestamp, true))   % 12-तास फॉरमॅट
' Excel VBA टाइमस्टॅम्प रूपांतरण
Function ConvertUnixTimestamp(timestamp As Long, Optional use12Hour As Boolean = False) As String
    ' युनिक्स टाइमस्टॅम्पला Excel तारीख/वेळमध्ये रूपांतरित करा
    ' Excel तारीख 1900-01-01 पासून दिवस आहेत, 1 = 1900-01-01
    ' युनिक्स टाइमस्टॅम्प म्हणजे 1970-01-01 पासूनचे सेकंद
    
    ' प्रथम Excel तारीख स्वरूपात रूपांतरित करा
    ' 25569 हे 1900-01-01 आणि 1970-01-01 यांच्यातील दिवसांची संख्या आहे
    Dim excelDate As Double
    excelDate = (timestamp / 86400) + 25569
    
    ' 12-तास किंवा 24-तास आवडीनुसार फॉरमॅट स्ट्रिंग सेट करा
    If use12Hour Then
        ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy h:mm:ss AM/PM")
    Else
        ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy hh:mm:ss")
    End If
End Function

' कार्यपद्धतीत वापर:
' =ConvertUnixTimestamp(1609459200, TRUE)  ' 12-तास फॉरमॅट
' =ConvertUnixTimestamp(1609459200, FALSE) ' 24-तास फॉरमॅट

कडवट प्रकरणे हाताळणे

युनिक्स टाइमस्टॅम्पसह काम करताना, कडवट प्रकरणे योग्यरित्या हाताळणे महत्त्वाचे आहे. येथे काही सामान्य कडवट प्रकरणे हाताळण्याचे उदाहरण आहे:

// जावास्क्रिप्ट कडवट प्रकरण हाताळणे
function safeConvertTimestamp(timestamp, use12Hour = false) {
  // तपासा की टाइमस्टॅम्प वैध आहे का
  if (timestamp === undefined || timestamp === null || isNaN(timestamp)) {
    return "अवैध टाइमस्टॅम्प";
  }
  
  // ऋणात्मक टाइमस्टॅम्पसाठी तपासा (1970 पूर्वीच्या तारखा)
  if (timestamp < 0) {
    // काही ब्राउझर ऋणात्मक टाइमस्टॅम्प योग्यरित्या हाताळू शकत नाहीत
    // 1970 पूर्वीच्या तारखांसाठी अधिक मजबूत पद्धतीचा वापर करा
    const date = new Date(timestamp * 1000);
    if (isNaN(date.getTime())) {
      return "अवैध तारीख (1970 पूर्वी)";
    }
  }
  
  // Y2K38 समस्येसाठी तपासा (32-बिट प्रणालींसाठी)
  const maxInt32 = 2147483647; // 32-बिट साइन केलेल्या पूर्णांकासाठी कमाल मूल्य
  if (timestamp > maxInt32) {
    // आधुनिक जावास्क्रिप्टमध्ये खूप मोठ्या टाइमस्टॅम्पसाठी BigInt वापरणाचा विचार करा
    console.warn("टाइमस्टॅम्प 32-बिट पूर्णांक मर्यादा ओलांडतो (Y2K38 समस्या)");
  }
  
  // सामान्य रूपांतरणासह पुढे जा
  try {
    const date = new Date(timestamp * 1000);
    const options = {
      year: 'numeric',
      month: 'long',
      day: 'numeric',
      weekday: 'long',
      hour: use12Hour ? 'numeric' : '2-digit',
      minute: '2-digit',
      second: '2-digit',
      hour12: use12Hour
    };
    return date.toLocaleString(undefined, options);
  } catch (error) {
    return "टाइमस्टॅम्प रूपांतरित करताना त्रुटी: " + error.message;
  }
}

संदर्भ

  1. "युनिक्स वेळ." विकिपीडिया, विकिमीडिया फाउंडेशन, https://en.wikipedia.org/wiki/Unix_time

  2. "2038 समस्या." विकिपीडिया, विकिमीडिया फाउंडेशन, https://en.wikipedia.org/wiki/Year_2038_problem

  3. ऑल्सन, आर्थर डेव्हिड. "कॅलेन्ड्रिकल टाइमची गुंतागुंत." द ओपन ग्रुप, https://www.usenix.org/legacy/events/usenix01/full_papers/olson/olson.pdf

  4. "ISO 8601." विकिपीडिया, विकिमीडिया फाउंडेशन, https://en.wikipedia.org/wiki/ISO_8601

  5. "RFC 3339: इंटरनेटवरील तारीख आणि वेळ: टाइमस्टॅम्प." इंटरनेट अभियांत्रण कार्य गट (IETF), https://tools.ietf.org/html/rfc3339

  6. कर्निगन, ब्रायन W., आणि डेनिस M. रिची. "C प्रोग्रामिंग भाषा." प्रेंटिस हॉल, 1988.

Feedback