ਯੂਨਿਕਸ ਟਾਈਮਸਟੈਂਪ ਕਨਵਰਟਰ
ਬਦਲੀ ਹੋਈ ਮਿਤੀ ਅਤੇ ਸਮਾਂ
ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪ ਕਨਵਰਟਰ
ਪਰੀਚਯ
ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪ (ਜਿਸਨੂੰ ਪੋਸਿਕਸ ਸਮਾਂ ਜਾਂ ਐਪੋਕ ਸਮਾਂ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ) ਸਮੇਂ ਦੇ ਇੱਕ ਪੌਇੰਟ ਨੂੰ ਵਰਣਨ ਕਰਨ ਲਈ ਇੱਕ ਪ੍ਰਣਾਲੀ ਹੈ। ਇਹ 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 (ਐਂਟੀ ਮੇਰਿਡੀਮ) ਅਤੇ ਦੁਪਹਿਰ ਤੋਂ ਰਾਤ ਦੇ ਸਮੇਂ ਤੱਕ PM (ਪੋਸਟ ਮੇਰਿਡੀਮ) ਹੁੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, 24-ਘੰਟੇ ਫਾਰਮੈਟ ਵਿੱਚ 15:00 ਨੂੰ 3:00 PM ਦੇ ਤੌਰ 'ਤੇ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ।
ਇਹ ਫਾਰਮੈਟਾਂ ਵਿੱਚੋਂ ਚੋਣ ਕਰਨਾ ਮੁੱਖ ਤੌਰ 'ਤੇ ਖੇਤਰਕ ਪਰੰਪਰਾਵਾਂ ਅਤੇ ਨਿੱਜੀ ਪਸੰਦਾਂ ਦਾ ਮਾਮਲਾ ਹੈ:
- 24-ਘੰਟੇ ਫਾਰਮੈਟ ਜ਼ਿਆਦਾਤਰ ਯੂਰਪ, ਲਾਤੀਨ ਅਮਰੀਕਾ ਅਤੇ ਏਸ਼ੀਆ ਦੇ ਬਹੁਤ ਸਾਰੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਵਿਸ਼ਵ ਭਰ ਵਿੱਚ ਵਿਗਿਆਨਕ, ਸੈਨਿਕ ਅਤੇ ਮੈਡੀਕਲ ਸੰਦਰਭਾਂ ਵਿੱਚ ਵੀ।
- 12-ਘੰਟੇ ਫਾਰਮੈਟ ਸੰਯੁਕਤ ਰਾਜ, ਕੈਨੇਡਾ, ਆਸਟ੍ਰੇਲੀਆ ਅਤੇ ਕੁਝ ਹੋਰ ਅੰਗਰੇਜ਼ੀ-ਬੋਲਣ ਵਾਲੇ ਦੇਸ਼ਾਂ ਵਿੱਚ ਦਿਨਚਾਰ ਵਿੱਚ ਪ੍ਰਚਲਿਤ ਹੈ।
ਕਿਨਾਰਾ ਕੇਸ ਅਤੇ ਸੀਮਾਵਾਂ
ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦੇ ਸਮੇਂ, ਕਈ ਕਿਨਾਰਾ ਕੇਸਾਂ ਅਤੇ ਸੀਮਾਵਾਂ ਦੇ ਬਾਰੇ ਜਾਣਕਾਰੀ ਹੋਣਾ ਜਰੂਰੀ ਹੈ:
-
ਨਕਾਰਾਤਮਕ ਟਾਈਮਸਟੈਂਪ: ਇਹ ਯੂਨਿਕ ਐਪੋਕ (1 ਜਨਵਰੀ 1970) ਤੋਂ ਪਹਿਲਾਂ ਦੀਆਂ ਤਾਰੀਖਾਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ। ਹਾਲਾਂਕਿ ਗਣਿਤੀਕ ਤੌਰ 'ਤੇ ਇਹ ਸਹੀ ਹਨ, ਕੁਝ ਸਿਸਟਮ ਨਕਾਰਾਤਮਕ ਟਾਈਮਸਟੈਂਪ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਸੰਭਾਲ ਨਹੀਂ ਕਰ ਸਕਦੇ।
-
ਸਾਲ 2038 ਦੀ ਸਮੱਸਿਆ: ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪ ਆਮ ਤੌਰ 'ਤੇ 32-ਬਿਟ ਸਾਈਨਡ ਇੰਟੀਜਰ ਦੇ ਰੂਪ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਜੋ 19 ਜਨਵਰੀ 2038 ਨੂੰ ਓਵਰਫਲੋ ਹੋ ਜਾਣਗੇ। ਇਸ ਮਿਤੀ ਤੋਂ ਬਾਅਦ, 32-ਬਿਟ ਸਿਸਟਮਾਂ ਸਮਿਆਂ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਦਰਸਾਉਣ ਵਿੱਚ ਅਸਮਰਥ ਹੋ ਜਾਣਗੇ ਜਦ ਤੱਕ ਕਿ ਉਨ੍ਹਾਂ ਨੂੰ ਵੱਡੇ ਇੰਟੀਜਰ ਕਿਸਮਾਂ ਵਿੱਚ ਬਦਲਿਆ ਨਾ ਜਾਵੇ।
-
ਬਹੁਤ ਵੱਡੇ ਟਾਈਮਸਟੈਂਪ: ਬਹੁਤ ਦੂਰ ਦੇ ਭਵਿੱਖ ਦੀਆਂ ਤਾਰੀਖਾਂ ਕੁਝ ਸਿਸਟਮਾਂ ਵਿੱਚ ਦਰਸਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀਆਂ, ਜਾਂ ਇਹ ਅਸਮਾਨਤਾ ਨਾਲ ਸੰਭਾਲੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।
-
ਛਾਲ ਦੇ ਸਕਿੰਟ: ਯੂਨਿਕ ਸਮਾਂ ਛਾਲ ਦੇ ਸਕਿੰਟਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਨਹੀਂ ਰੱਖਦਾ, ਜੋ ਕਿ ਆਕਾਸ਼ੀ ਸਮੇਂ ਦੇ ਅਸਮਾਨਤਾ ਨੂੰ ਸਮਰਥਨ ਕਰਨ ਲਈ ਸਮੇਂ-ਸਮੇਂ ਤੇ UTC ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਯੂਨਿਕ ਸਮਾਂ ਆਕਾਸ਼ੀ ਸਮੇਂ ਨਾਲ ਸਹੀ ਤੌਰ 'ਤੇ ਸਮਕਾਲੀਕ੍ਰਿਤ ਨਹੀਂ ਹੈ।
-
ਸਮਾਂ ਖੇਤਰ ਦੇ ਵਿਚਾਰ: ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪ ਮੋਮੈਂਟਾਂ ਨੂੰ UTC ਵਿੱਚ ਦਰਸਾਉਂਦੇ ਹਨ। ਸਥਾਨਕ ਸਮੇਂ ਵਿੱਚ ਬਦਲਣ ਲਈ ਵਾਧੂ ਸਮਾਂ ਖੇਤਰ ਦੀ ਜਾਣਕਾਰੀ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
-
ਦਿਨ ਦੀ ਬਚਤ ਦਾ ਸਮਾਂ: ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਸਥਾਨਕ ਸਮੇਂ ਵਿੱਚ ਬਦਲਣ ਵੇਲੇ, ਦਿਨ ਦੀ ਬਚਤ ਦੇ ਸਮੇਂ ਦੇ ਬਦਲਾਵਾਂ ਦੀਆਂ ਜਟਿਲਤਾਵਾਂ ਦਾ ਧਿਆਨ ਰੱਖਣਾ ਜਰੂਰੀ ਹੈ।
ਵਰਤੋਂ ਦੇ ਕੇਸ
ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਕੰਪਿਊਟਿੰਗ ਅਤੇ ਡਾਟਾ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਕਈ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:
-
ਡਾਟਾਬੇਸ ਰਿਕਾਰਡ: ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਆਮ ਤੌਰ 'ਤੇ ਦਰਜਿਆਂ ਦੇ ਬਣਨ ਜਾਂ ਸੋਧੇ ਜਾਣ ਦੀ ਮਿਤੀ ਦਰਸਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
-
ਵੈਬ ਵਿਕਾਸ: HTTP ਹੈਡਰ, ਕੁਕੀਜ਼, ਅਤੇ ਕੈਸ਼ਿੰਗ ਮਕੈਨਿਜ਼ਮ ਆਮ ਤੌਰ 'ਤੇ ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।
-
ਲੌਗ ਫਾਈਲਾਂ: ਸਿਸਟਮ ਲੌਗ ਆਮ ਤੌਰ 'ਤੇ ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪਾਂ ਨਾਲ ਘਟਨਾਵਾਂ ਨੂੰ ਸਹੀ ਕ੍ਰਮ ਵਿੱਚ ਦਰਸਾਉਂਦੇ ਹਨ।
-
ਵਰਜਨ ਕੰਟਰੋਲ ਸਿਸਟਮ: ਗਿਟ ਅਤੇ ਹੋਰ VCS ਟਾਈਮਸਟੈਂਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਤਾਂ ਜੋ ਦਰਜਿਆਂ ਦੇ ਬਣਨ ਦੀ ਮਿਤੀ ਦਰਸਾਈ ਜਾ ਸਕੇ।
-
API ਜਵਾਬ: ਬਹੁਤ ਸਾਰੇ ਵੈਬ APIs ਆਪਣੇ ਜਵਾਬਾਂ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ ਤਾਂ ਜੋ ਇਹ ਦਰਸਾਇਆ ਜਾ ਸਕੇ ਕਿ ਡਾਟਾ ਕਦੋਂ ਬਣਾਇਆ ਗਿਆ ਜਾਂ ਸਰੋਤਾਂ ਨੂੰ ਕਦੋਂ ਆਖਰੀ ਵਾਰ ਸੋਧਿਆ ਗਿਆ।
-
ਫਾਈਲ ਸਿਸਟਮ: ਫਾਈਲਾਂ ਦੀ ਬਣਨ ਅਤੇ ਸੋਧਣ ਦੇ ਸਮੇਂ ਆਮ ਤੌਰ 'ਤੇ ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।
-
ਸੈਸ਼ਨ ਪ੍ਰਬੰਧਨ: ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਯੂਜ਼ਰ ਸੈਸ਼ਨਾਂ ਦੇ ਸਮੇਂ ਦੀ ਮਿਆਦ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਟਾਈਮਸਟੈਂਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।
-
ਡਾਟਾ ਵਿਸ਼ਲੇਸ਼ਣ: ਟਾਈਮਸਟੈਂਪਾਂ ਵਿਸ਼ਲੇਸ਼ਣ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਅਸਮਾਨਿਤ ਡਾਟਾ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਇੱਕ ਮਿਆਰੀ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ।
ਬਦਲਾਅ
ਜਦੋਂ ਕਿ ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪਾਂ ਦਾ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਕੁਝ ਹੋਰ ਸਮਾਂ ਪ੍ਰਤੀਨਿਧਾਨ ਫਾਰਮੈਟ ਹਨ ਜੋ ਕੁਝ ਸੰਦਰਭਾਂ ਵਿੱਚ ਹੋਰ ਉਚਿਤ ਹੋ ਸਕਦੇ ਹਨ:
-
ISO 8601: ਇੱਕ ਮਿਆਰੀਕ੍ਰਿਤ ਸਤਰ ਫਾਰਮੈਟ (ਜਿਵੇਂ "2021-01-01T00:00:00Z") ਜੋ ਮਨੁੱਖੀ ਪੜ੍ਹਨਯੋਗ ਹੈ ਜਦੋਂ ਕਿ ਇਹ ਸੋਰਟੇਬਿਲਟੀ ਨੂੰ ਬਣਾਈ ਰੱਖਦਾ ਹੈ। ਇਹ ਡਾਟਾ ਅਦਾਨ-ਪ੍ਰਦਾਨ ਅਤੇ ਉਪਭੋਗਤਾ-ਮੁਖੀ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਆਮ ਤੌਰ 'ਤੇ ਪਸੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
-
RFC 3339: ISO 8601 ਦਾ ਇੱਕ ਪ੍ਰੋਫਾਈਲ ਜੋ ਇੰਟਰਨੈੱਟ ਪ੍ਰੋਟੋਕੋਲਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਕਠੋਰ ਫਾਰਮੈਟਿੰਗ ਦੀਆਂ ਲੋੜਾਂ ਹਨ।
-
ਮਨੁੱਖੀ ਪੜ੍ਹਨਯੋਗ ਫਾਰਮੈਟ: ਸਥਾਨਕ ਤਾਰੀਖ਼ਾਂ ਦੇ ਸਤਰ (ਜਿਵੇਂ "1 ਜਨਵਰੀ 2021") ਸਿੱਧੇ ਉਪਭੋਗਤਾ ਸੰਪਰਕ ਲਈ ਹੋਰ ਉਚਿਤ ਹਨ ਪਰ ਗਣਨਾ ਲਈ ਇਹ ਘੱਟ ਉਚਿਤ ਹਨ।
-
ਮਾਈਕ੍ਰੋਸੌਫਟ ਫਾਈਲਟਾਈਮ: ਇੱਕ 64-ਬਿਟ ਮੁੱਲ ਜੋ 1601-01-01 ਤੋਂ ਲੈ ਕੇ 100-ਨਾਨੋਸਕਿੰਟਾਂ ਦੇ ਅੰਤਰਾਲਾਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਜੋ ਕਿ ਵਿੰਡੋਜ਼ ਸਿਸਟਮਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
-
ਜੂਲੀਅਨ ਦਿਨ ਦੀ ਗਿਣਤੀ: ਜੋ ਕਿ ਖਗੋਲ ਵਿਗਿਆਨ ਅਤੇ ਕੁਝ ਵਿਗਿਆਨਕ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਜੋ ਕਿ BCE 4713-01-01 ਤੋਂ ਦਿਨਾਂ ਦੀ ਗਿਣਤੀ ਕਰਦੀ ਹੈ।
ਸਮਾਂ ਫਾਰਮੈਟ ਦੀ ਚੋਣ ਬਹੁਤ ਸਾਰੇ ਕਾਰਕਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ:
- ਲੋੜੀਂਦੀ ਸਹੀਤਾ
- ਮਨੁੱਖੀ ਪੜ੍ਹਨਯੋਗਤਾ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ
- ਸਟੋਰੇਜ ਦੀਆਂ ਸੀਮਾਵਾਂ
- ਮੌਜੂਦਾ ਸਿਸਟਮਾਂ ਨਾਲ ਸਹਿਯੋਗ
- ਦਰਸਾਈ ਜਾਣ ਵਾਲੀਆਂ ਤਾਰੀਖਾਂ ਦੀ ਰੇਂਜ
ਇਤਿਹਾਸ
ਯੂਨਿਕ ਸਮਾਂ ਦਾ ਧਾਰਨਾ ਯੂਨਿਕ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਵਿਕਾਸ ਨਾਲ ਜੁੜੀ ਹੋਈ ਹੈ ਜੋ ਕਿ ਬੇਲ ਲੈਬਜ਼ ਵਿੱਚ 1960 ਦੇ ਅਖੀਰ ਅਤੇ 1970 ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਵਿਕਸਿਤ ਕੀਤਾ ਗਿਆ ਸੀ। ਐਪੋਕ ਦੇ ਤੌਰ 'ਤੇ 1 ਜਨਵਰੀ 1970 ਨੂੰ ਚੁਣਨ ਦਾ ਫੈਸਲਾ ਕੁਝ ਹੱਦ ਤੱਕ ਮਨਮਾਨਾ ਸੀ ਪਰ ਸਮੇਂ ਦੇ ਲਈ ਪ੍ਰਯੋਗਸ਼ੀਲ ਸੀ—ਇਹ ਰੁਕਾਵਟਾਂ ਤੋਂ ਬਚਣ ਲਈ ਕਾਫੀ ਨਜ਼ਦੀਕ ਸੀ ਜੋ ਕਿ ਦਿਲਚਸਪ ਤਾਰੀਖਾਂ ਦੀਆਂ ਗਿਣਤੀਆਂ ਲਈ ਸਟੋਰੇਜ ਦੀਆਂ ਲੋੜਾਂ ਨੂੰ ਘੱਟ ਕਰਦਾ ਸੀ ਪਰ ਇਤਿਹਾਸਕ ਡਾਟਾ ਲਈ ਲਾਭਦਾਇਕ ਸੀ।
ਮੂਲ ਕਾਰਜਕ੍ਰਮ ਵਿੱਚ 32-ਬਿਟ ਸਾਈਨਡ ਇੰਟੀਜਰ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਸੀ ਜੋ ਕਿ 1970 ਦੇ ਸਮੇਂ ਦੇ ਦੌਰਾਨ ਲਾਗੂ ਹੋਣ ਵਾਲੀਆਂ ਤਾਰੀਖਾਂ ਦੀਆਂ ਗਿਣਤੀਆਂ ਲਈ ਯੋਗ ਸੀ। ਹਾਲਾਂਕਿ, ਇਸ ਫੈਸਲੇ ਨੇ ਸਾਲ 2038 ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਜਨਮ ਦਿੱਤਾ (ਕਈ ਵਾਰੀ "Y2K38" ਜਾਂ "ਯੂਨਿਕ ਮਿਲੇਨਿਯਮ ਬੱਗ" ਕਿਹਾ ਜਾਂਦਾ ਹੈ), ਕਿਉਂਕਿ 32-ਬਿਟ ਸਾਈਨਡ ਇੰਟੀਜਰ ਸਿਰਫ 19 ਜਨਵਰੀ 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-ਘੰਟੇ ਫਾਰਮੈਟ
ਕਿਨਾਰਾ ਕੇਸਾਂ ਨੂੰ ਸੰਭਾਲਣਾ
ਯੂਨਿਕ ਟਾਈਮਸਟੈਂਪਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦੇ ਸਮੇਂ, ਕਿਨਾਰਾ ਕੇਸਾਂ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਸੰਭਾਲਣਾ ਜਰੂਰੀ ਹੈ। ਇੱਥੇ ਕੁਝ ਆਮ ਕਿਨਾਰਾ ਕੇਸਾਂ ਨੂੰ ਸੰਭਾਲਣ ਦੇ ਉਦਾਹਰਨ ਹਨ:
// ਜਾਵਾਸਕ੍ਰਿਪਟ ਕਿਨਾਰਾ ਕੇਸ ਸੰਭਾਲਣਾ
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;
}
}
ਸੰਦਰਭ
-
"ਯੂਨਿਕ ਸਮਾਂ।" ਵਿਕੀਪੀਡੀਆ, ਵਿਕੀਮੀਡੀਆ ਫਾਊਂਡੇਸ਼ਨ, 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।