યુનિક્સ ટાઈમસ્ટેમ્પ રૂપાંતરક
રૂપાંતરિત તારીખ અને સમય
યુનિક્સ ટાઈમસ્ટેમ્પ કન્વર્ટર
પરિચય
યુનિક્સ ટાઈમસ્ટેમ્પ (જેને પોસિક સમય અથવા ઇપોચ સમય તરીકે પણ ઓળખવામાં આવે છે) સમયના એક બિંદુને વર્ણવવા માટેની એક પદ્ધતિ છે. તે 1 જાન્યુઆરી 1970 (મિડનાઇટ યુટીસી/જીીએમટી) થી પસાર થયેલા સેકંડોની સંખ્યા છે, લીપ સેકંડોને ગણતરીમાં ન લેતા. યુનિક્સ ટાઈમસ્ટેમ્પ કમ્પ્યુટર સિસ્ટમો અને પ્રોગ્રામિંગ ભાષાઓમાં વ્યાપકપણે ઉપયોગમાં લેવાય છે કારણ કે તે ચોક્કસ સમયના ક્ષણનું સંકુચિત, ભાષા-અસંબંધિત પ્રતિનિધિત્વ પ્રદાન કરે છે.
આ કન્વર્ટર તમને યુનિક્સ ટાઈમસ્ટેમ્પને માનવ-વાંચનક્ષમ તારીખ અને સમય ફોર્મેટમાં રૂપાંતરિત કરવાની મંજૂરી આપે છે. તે વિવિધ પ્રાદેશિક અને વ્યક્તિગત પસંદગીઓ માટે 12-કલાક (એએમ/પીએમ) અને 24-કલાક સમય ફોર્મેટ બંનેને સપોર્ટ કરે છે.
યુનિક્સ ટાઈમસ્ટેમ્પ કેવી રીતે કાર્ય કરે છે
યુનિક્સ ટાઈમસ્ટેમ્પ્સ યુનિક્સ ઇપોચ (1 જાન્યુઆરી 1970, 00:00:00 યુટીસી) થી પસાર થયેલા સેકંડોની સંખ્યા તરીકે ગણવામાં આવે છે. આ તેમને સમયના અંતરોની ગણના કરવા અને તારીખોને સંકુચિત ફોર્મેટમાં સંગ્રહિત કરવા માટે વિશેષરૂપે ઉપયોગી બનાવે છે.
યુનિક્સ ટાઈમસ્ટેમ્પને કેલેન્ડર તારીખમાં રૂપાંતરિત કરવા માટેની ગણિતીય રૂપાંતરણમાં અનેક પગલાંનો સમાવેશ થાય છે:
- યુનિક્સ ઇપોચ (1 જાન્યુઆરી 1970, 00:00:00 યુટીસી) થી શરૂ કરો
- ટાઈમસ્ટેમ્પમાં સેકંડોની સંખ્યા ઉમેરો
- લીપ વર્ષો, વિવિધ મહિના લાંબાઈઓ અને અન્ય કેલેન્ડર જટિલતાઓને ધ્યાનમાં લો
- જો જરૂર હોય તો સમય ઝોનના સમાયોજન લાગુ કરો
ઉદાહરણ તરીકે, યુનિક્સ ટાઈમસ્ટેમ્પ 1609459200
શુક્રવાર, 1 જાન્યુઆરી, 2021, 00:00:00 યુટીસીમાં પ્રતિનિધિત્વ કરે છે.
રૂપાંતરણ સૂત્ર આ રીતે વ્યક્ત કરી શકાય છે:
અધિકાંશ પ્રોગ્રામિંગ ભાષાઓ અને ઓપરેટિંગ સિસ્ટમો આ રૂપાંતરણને સંભાળવા માટે બિલ્ટ-ઇન કાર્ય પ્રદાન કરે છે, જટિલ કેલેન્ડર ગણનાઓને છુપાવીને.
સમય ફોર્મેટ વિકલ્પો
આ કન્વર્ટર બે સમય ફોર્મેટ વિકલ્પો પ્રદાન કરે છે:
-
24-કલાક ફોર્મેટ (ક્યારેક "મિલિટરી સમય" તરીકે ઓળખાય છે): કલાકો 0 થી 23 વચ્ચે હોય છે, અને AM/PM નિર્દેશન નથી. ઉદાહરણ તરીકે, 3:00 PM ને 15:00 તરીકે દર્શાવવામાં આવે છે.
-
12-કલાક ફોર્મેટ: કલાકો 1 થી 12 વચ્ચે હોય છે, મધ્યરાતથી બપોર સુધીના સમય માટે AM (એન્ટે મેરિડિયમ) અને બપોરથી મધ્યરાત સુધીના સમય માટે PM (પોસ્ટ મેરિડિયમ) હોય છે. ઉદાહરણ તરીકે, 24-કલાક ફોર્મેટમાં 15:00 ને 3:00 PM તરીકે દર્શાવવામાં આવે છે.
આ ફોર્મેટ્સ વચ્ચેની પસંદગી મોટા ભાગે પ્રાદેશિક પરંપરા અને વ્યક્તિગત પસંદગીઓ પર આધારિત છે:
- 24-કલાક ફોર્મેટનો ઉપયોગ યુરોપ, લેટિન અમેરિકાના મોટા ભાગે અને એશિયામાં થાય છે, તેમજ વૈશ્વિક વૈજ્ઞાનિક, સૈનિક અને તબીબી સંદર્ભોમાં.
- 12-કલાક ફોર્મેટ યુનાઇટેડ સ્ટેટ્સ, કેનેડા, ઓસ્ટ્રેલિયા અને અન્ય કેટલાક અંગ્રેજી બોલતા દેશોમાં રોજિંદા ઉપયોગ માટે વ્યાપક છે.
કિનારા કેસો અને મર્યાદાઓ
યુનિક્સ ટાઈમસ્ટેમ્પ્સ સાથે કામ કરતી વખતે, કેટલાક કિનારા કેસો અને મર્યાદાઓને ધ્યાનમાં રાખવું મહત્વપૂર્ણ છે:
-
ઋણાત્મક ટાઈમસ્ટેમ્પ્સ: આ યુનિક્સ ઇપોચ (1 જાન્યુઆરી 1970) પહેલાંની તારીખોને દર્શાવે છે. જ્યારે આ ગણિતીય રીતે માન્ય હોય છે, કેટલાક સિસ્ટમો ઋણાત્મક ટાઈમસ્ટેમ્પ્સને યોગ્ય રીતે સંભાળતા નથી.
-
વર્ષ 2038 સમસ્યા: યુનિક્સ ટાઈમસ્ટેમ્પ્સ સામાન્ય રીતે 32-બિટ સહીવાળા પૂર્ણાંક તરીકે સંગ્રહિત કરવામાં આવે છે, જે 19 જાન્યુઆરી 2038ના રોજ ઓવરફ્લો થશે. આ બિંદુ પછી, 32-બિટ સિસ્ટમો યોગ્ય રીતે સમયને પ્રતિનિધિત્વ કરવા માટે અસમર્થ રહેશે, જો તે મોટા પૂર્ણાંક પ્રકારનો ઉપયોગ કરવા માટે સુધારવામાં ન આવે.
-
અતિ મોટાં ટાઈમસ્ટેમ્પ્સ: ખૂબ જ દૂરના ભવિષ્યના તારીખો કેટલાક સિસ્ટમોમાં પ્રતિનિધિત્વ કરી શકાતાં નથી, અથવા અસંગત રીતે સંભાળવામાં આવી શકે છે.
-
લીપ સેકંડ્સ: યુનિક્સ સમય લીપ સેકંડ્સને ધ્યાનમાં લેતા નથી, જે યુટીસી સાથે ધરતીના અનિયમિત ગતિને સમાયોજિત કરવા માટે ક્યારેક ઉમેરવામાં આવે છે. આનો અર્થ એ છે કે યુનિક્સ સમય ખગોળીય સમય સાથે ચોક્કસ રીતે સમન્વયિત નથી.
-
સમય ઝોનના વિચાર: યુનિક્સ ટાઈમસ્ટેમ્પ્સ ક્ષણોને યુટીસીમાં પ્રતિનિધિત્વ કરે છે. સ્થાનિક સમયમાં રૂપાંતર કરવા માટે વધારાના સમય ઝોનની માહિતીની જરૂર છે.
-
ડેઇલાઇટ સેવિંગ ટાઈમ: ટાઈમસ્ટેમ્પ્સને સ્થાનિક સમયમાં રૂપાંતર કરતી વખતે, ડેઇલાઇટ સેવિંગ ટાઈમના પરિવર્તનોની જટિલતાઓને ધ્યાનમાં લેવું જરૂરી છે.
ઉપયોગના કેસ
યુનિક્સ ટાઈમસ્ટેમ્પ્સ કમ્પ્યુટિંગ અને ડેટા વ્યવસ્થાપનમાં અનેક એપ્લિકેશન્સમાં ઉપયોગમાં લેવાય છે:
-
ડેટાબેસ રેકોર્ડ્સ: ટાઈમસ્ટેમ્પ્સ સામાન્ય રીતે એ નોંધ કરવા માટે ઉપયોગમાં લેવાય છે કે પ્રવેશો ક્યારે બનાવવામાં આવ્યા અથવા સુધારવામાં આવ્યા.
-
વેબ વિકાસ: HTTP હેડર્સ, કૂકીઝ અને કેશિંગ મિકેનિઝમો ઘણીવાર યુનિક્સ ટાઈમસ્ટેમ્પ્સનો ઉપયોગ કરે છે.
-
લોગ ફાઇલો: સિસ્ટમ લોગ્સ સામાન્ય રીતે ઘટનાઓને ચોક્કસ ક્રમમાં નોંધવા માટે યુનિક્સ ટાઈમસ્ટેમ્પ્સ સાથે નોંધ લે છે.
-
વર્ષ નિયંત્રણ સિસ્ટમો: Git અને અન્ય VCS ટાઈમસ્ટેમ્પ્સનો ઉપયોગ કરે છે જે નોંધણી ક્યારે કરવામાં આવી હતી તે નોંધવા માટે.
-
એપીઆઈ પ્રતિસાદ: ઘણા વેબ એપીઆઈ તેમના પ્રતિસાદમાં ટાઈમસ્ટેમ્પ્સનો સમાવેશ કરે છે જે દર્શાવે છે કે ડેટા ક્યારે ઉત્પન્ન થયું અથવા સંસાધનો ક્યારે છેલ્લે સુધારવામાં આવ્યા.
-
ફાઇલ સિસ્ટમો: ફાઇલ બનાવવાની અને સુધારવાની સમયને સામાન્ય રીતે યુનિક્સ ટાઈમસ્ટેમ્પ્સ તરીકે સંગ્રહિત કરવામાં આવે છે.
-
સત્ર વ્યવસ્થાપન: વેબ એપ્લિકેશન્સ યુનિક્સ ટાઈમસ્ટેમ્પ્સનો ઉપયોગ કરે છે જે દર્શાવે છે કે વપરાશકર્તા સત્રો ક્યારે સમાપ્ત થવા જોઈએ.
-
ડેટા વિશ્લેષણ: ટાઈમસ્ટેમ્પ્સ વિશ્લેષણ એપ્લિકેશન્સમાં સમયના ડેટા સાથે કામ કરવા માટે એક માનક રીત પ્રદાન કરે છે.
વિકલ્પો
યુનિક્સ ટાઈમસ્ટેમ્પ્સ વ્યાપકપણે ઉપયોગમાં લેવાય છે, પરંતુ કેટલાક સંદર્ભોમાં વધુ યોગ્યતા ધરાવતા સમય પ્રતિનિધિત્વ ફોર્મેટ્સ છે:
-
આઇએસઓ 8601: એક માનક સ્ટ્રિંગ ફોર્મેટ (ઉદાહરણ તરીકે, "2021-01-01T00:00:00Z") જે માનવ-વાંચનક્ષમ છે જ્યારે સોર્ટેબિલિટી જાળવી રાખે છે. ડેટા વિનિમય અને વપરાશકર્તા-સામનો એપ્લિકેશન્સ માટે આ સામાન્ય રીતે પસંદ કરવામાં આવે છે.
-
RFC 3339: ઇન્ટરનેટ પ્રોટોકોલ્સમાં ઉપયોગમાં લેવાતી આઇએસઓ 8601 ની એક પ્રોફાઇલ, જે કડક ફોર્મેટિંગની આવશ્યકતાઓ ધરાવે છે.
-
માનવ-વાંચનક્ષમ ફોર્મેટ્સ: સ્થાનિકીકૃત તારીખની સ્ટ્રિંગ્સ (ઉદાહરણ તરીકે, "જાન્યુઆરી 1, 2021") સીધી વપરાશકર્તા ક્રિયાપ્રતિક્રિયા માટે વધુ યોગ્ય છે પરંતુ ગણનાના માટે ઓછા યોગ્ય છે.
-
માઇક્રોસોફ્ટ ફાઇલટાઇમ: 64-બિટ મૂલ્ય જે 1601-01-01 થી 100-નાનો સેકંડના અંતરનું પ્રતિનિધિત્વ કરે છે, જે વિન્ડોઝ સિસ્ટમોમાં ઉપયોગમાં લેવાય છે.
-
જુલિયન દિવસ નંબર: ખગોળશાસ્ત્ર અને કેટલાક વૈજ્ઞાનિક એપ્લિકેશન્સમાં ઉપયોગમાં લેવાય છે, 4713 BCE થી દિવસોની ગણતરી કરે છે.
સમય ફોર્મેટની પસંદગીનો આધાર વિવિધ પરિબળો પર આધારિત છે જેમ કે:
- જરૂરી ચોકસાઈ
- માનવ વાંચનક્ષમતા જરૂરિયાતો
- સંગ્રહ મર્યાદાઓ
- અસ્તિત્વમાં રહેલા સિસ્ટમો સાથે સુસંગતતા
- પ્રતિનિધિત્વ કરવાની જરૂરિયાત ધરાવતી તારીખોની શ્રેણી
ઇતિહાસ
યુનિક્સ સમયની સંકલ્પના યુનિક્સ ઓપરેટિંગ સિસ્ટમના વિકાસ સાથે બેલ લેબ્સમાં 1960 અને 1970ના દાયકામાં ઉદ્ભવી. ઇપોચ તરીકે 1 જાન્યુઆરી 1970 ને પસંદ કરવાનો નિર્ણય થોડો અનિયમિત હતો પરંતુ સમય માટે વ્યાવહારિક હતો—તે રસપ્રદ તારીખો માટે સંગ્રહ જરૂરિયાતોને ઓછું કરવા માટે તાજેતરમાં હતું પરંતુ ઐતિહાસિક ડેટા માટે ઉપયોગી બનવા માટે પૂરતું દૂર હતું.
મૂળ અમલમાં 32-બિટ સહીવાળા પૂર્ણાંકનો ઉપયોગ કરીને સેકંડોની સંખ્યા સંગ્રહિત કરવામાં આવી, જે તે સમયે યુનિક્સ સિસ્ટમ્સની અપેક્ષિત આયુષ્ય માટે પૂરતી હતી. પરંતુ આ નિર્ણય વર્ષ 2038 સમસ્યાને જન્મ આપ્યો (ક્યારેક "Y2K38" અથવા "યુનિક્સ મિલેનિયમ બગ" તરીકે ઓળખાય છે), કારણ કે 32-બિટ સહીવાળા પૂર્ણાંક 1 જાન્યુઆરી 2038 (03:14:07 યુટીસી) સુધીની તારીખોને જ પ્રતિનિધિત્વ કરી શકે છે.
યુનિક્સ અને યુનિક્સ જેવા ઓપરેટિંગ સિસ્ટમોનો લોકપ્રિયતા વધતા જતા યુનિક્સ ટાઈમસ્ટેમ્પ એક અસલ ધોરણ તરીકે વિકસિત થયો. તે અનેક પ્રોગ્રામિંગ ભાષાઓ, ડેટાબેસ અને એપ્લિકેશન્સ દ્વારા અપનાવવામાં આવ્યો, જે તેના મૂળ યુનિક્સ પર્યાવરણથી આગળ વધીને.
આધુનિક સિસ્ટમો increasingly 64-બિટ પૂર્ણાંક ટાઈમસ્ટેમ્પ્સનો ઉપયોગ કરે છે, જે ઇપોચથી લગભગ 292 અબજ વર્ષ સુધીના પ્રતિનિધિત્વની શ્રેણી વિસ્તૃત કરે છે, જે વર્ષ 2038ની સમસ્યાને અસરકારક રીતે ઉકેલે છે. જોકે, વારસાગત સિસ્ટમો અને એપ્લિકેશન્સ હજુ પણ જોખમમાં હોઈ શકે છે.
યુનિક્સ ટાઈમસ્ટેમ્પની સરળતા અને ઉપયોગિતા તેની સતત સંબંધિતતાને સુનિશ્ચિત કરે છે, વધુ વિકસિત સમય પ્રતિનિધિત્વ ફોર્મેટ્સની વિકાસના બાવજૂત. તે કમ્પ્યુટિંગમાં એક મૂળભૂત સંકલ્પના તરીકે રહે છે, જે અમારી ડિજિટલ ઇન્ફ્રાસ્ટ્રક્ચરના ઘણાં ભાગોને આધાર આપે છે.
કોડ ઉદાહરણો
અહીં વિવિધ પ્રોગ્રામિંગ ભાષાઓમાં યુનિક્સ ટાઈમસ્ટેમ્પને માનવ-વાંચનક્ષમ તારીખોમાં રૂપાંતરિત કરવાની ઉદાહરણો છે:
// જાવાસ્ક્રિપ્ટ ટાઈમસ્ટેમ્પ રૂપાંતરણ
function convertUnixTimestamp(timestamp, use12Hour = false) {
// નવી તારીખની વસ્તુ બનાવો (જાવાસ્ક્રિપ્ટ મિલિસેકન્ડ્સનો ઉપયોગ કરે છે)
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 યુટીસી
console.log(convertUnixTimestamp(timestamp, false)); // 24-કલાક ફોર્મેટ
console.log(convertUnixTimestamp(timestamp, true)); // 12-કલાક ફોર્મેટ
કિનારા કેસો સંભાળવું
યુનિક્સ ટાઈમસ્ટેમ્પ્સ સાથે કામ કરતી વખતે, કેટલાક સામાન્ય કિનારા કેસોનું યોગ્ય રીતે સંભાળવું મહત્વપૂર્ણ છે. અહીં કેટલાક સામાન્ય કિનારા કેસો સંભાળવા માટેના ઉદાહરણો છે:
// જાવાસ્ક્રિપ્ટ કિનારા કેસો સંભાળવું
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 પહેલાં)";
}
}
// વર્ષ 2038 સમસ્યાને ધ્યાનમાં રાખો (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;
}
}
સંદર્ભો
-
"યુનિક્સ સમય." વિકીપીડિયા, વિકીમિડિયા ફાઉન્ડેશન, 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
-
"આઇએસઓ 8601." વિકીપીડિયા, વિકીમિડિયા ફાઉન્ડેશન, https://en.wikipedia.org/wiki/ISO_8601
-
"RFC 3339: ઇન્ટરનેટ પર તારીખ અને સમય: ટાઈમસ્ટેમ્પ્સ." ઇન્ટરનેટ એન્જિનિયરિંગ ટાસ્ક ફોર્સ (IETF), https://tools.ietf.org/html/rfc3339
-
કેર્નિગન, બ્રાયન ડબલ્યુ., અને ડેનિસ એમ. રિચી. "C પ્રોગ્રામિંગ ભાષા." પ્રેન્ટિસ હોલ, 1988.