ਟਾਈਮਸਟੈਂਪ ਫਾਰਮੈਟ
ਸਮੱਗਰੀ:
ਸਾਰ
ਮੁੱਦਾ
ਅਸੀਂ ਟਾਈਮਸਟੈਂਪਾਂ ਅਤੇ ਇਕਸਾਰ ਟਾਈਮਸਟੈਂਪ ਫਾਰਮੈਟ ਵਰਤ ਕੇ ਇਹ ਟਰੈਕ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੁੰਦੇ ਹਾਂ ਕਿ ਚੀਜ਼ਾਂ ਕਦੋਂ ਵਾਪਰਦੀਆਂ ਹਨ, ਅਜਿਹਾ ਫਾਰਮੈਟ ਜੋ ਸਾਡੇ ਸਾਰੇ ਸਿਸਟਮਾਂ ਅਤੇ ਤੀਜੀ ਧਿਰ ਦੇ ਸਿਸਟਮਾਂ ਵਿੱਚ ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰੇ।
ਅਸੀਂ ਅਜਿਹੇ ਸਿਸਟਮਾਂ ਨਾਲ ਪਰਸਪਰ ਕਿਰਿਆ ਕਰਦੇ ਹਾਂ ਜਿਨ੍ਹਾਂ ਦੇ ਟਾਈਮਸਟੈਂਪ ਫਾਰਮੈਟ ਵੱਖ-ਵੱਖ ਹਨ:
JSON ਸੁਨੇਹਿਆਂ ਦਾ ਕੋਈ ਮੂਲ ਟਾਈਮਸਟੈਂਪ ਫਾਰਮੈਟ ਨਹੀਂ ਹੁੰਦਾ, ਇਸ ਲਈ ਸਾਨੂੰ ਚੁਣਨਾ ਪੈਂਦਾ ਹੈ ਕਿ ਟਾਈਮਸਟੈਂਪ ਨੂੰ ਸਟਰਿੰਗ ਵਿੱਚ ਕਿਵੇਂ ਬਦਲਣਾ ਹੈ, ਅਤੇ ਸਟਰਿੰਗ ਨੂੰ ਟਾਈਮਸਟੈਂਪ ਵਿੱਚ ਕਿਵੇਂ ਬਦਲਣਾ ਹੈ, ਯਾਨੀ ਸੀਰੀਅਲਾਈਜ਼/ਡੀਸੀਰੀਅਲਾਈਜ਼ ਕਿਵੇਂ ਕਰਨਾ ਹੈ।
ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ UTC ਸਮੇਂ ਦੀ ਬਜਾਏ ਸਥਾਨਕ ਸਮਾਂ ਵਰਤਣ ਲਈ ਸੈੱਟ ਹੁੰਦੀਆਂ ਹਨ। ਇਹ ਉਨ੍ਹਾਂ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਸੁਵਿਧਾਜਨਕ ਹੋ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਸਥਾਨਕ ਸਮੇਂ ਅਨੁਸਾਰ ਢਲਣਾ ਪੈਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਉਹ ਪ੍ਰੋਜੈਕਟ ਜੋ ਸਥਾਨਕ ਸਮੇਂ ਉੱਤੇ ਆਧਾਰਿਤ ਇਵੈਂਟਾਂ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹਨ।
ਕੁਝ ਸਿਸਟਮਾਂ ਦੀਆਂ ਸਮੇਂ ਦੀ ਸਟੀਕਤਾ ਦੀਆਂ ਲੋੜਾਂ ਅਤੇ ਸਮਰੱਥਾਵਾਂ ਵੱਖ-ਵੱਖ ਹੁੰਦੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ ਸਕਿੰਟਾਂ ਬਨਾਮ ਮਿਲੀਸਕਿੰਟਾਂ ਬਨਾਮ ਨੈਨੋਸਕਿੰਟਾਂ ਦਾ ਸਮਾਂ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਵਰਤਣਾ। ਉਦਾਹਰਨ ਲਈ, Linux ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੀ
dateਕਮਾਂਡ ਮੂਲ ਰੂਪ ਵਿੱਚ ਸਕਿੰਟਾਂ ਦੀ ਸਟੀਕਤਾ ਵਰਤਦੀ ਹੈ, ਜਦਕਿ Nasdaq ਸਟਾਕ ਐਕਸਚੇਂਜ ਮੂਲ ਰੂਪ ਵਿੱਚ ਨੈਨੋਸਕਿੰਟਾਂ ਦੀ ਸਟੀਕਤਾ ਚਾਹੁੰਦਾ ਹੈ।
ਫੈਸਲਾ
ਅਸੀਂ ਨੈਨੋਸਕਿੰਟ ਸਟੀਕਤਾ ਵਾਲਾ ISO 8601 ਟਾਈਮਸਟੈਂਪ ਮਿਆਰੀ ਫਾਰਮੈਟ ਚੁਣਦੇ ਹਾਂ, ਖਾਸ ਤੌਰ ਉੱਤੇ "YYYY-MM-DDTHH:MM:SS.NNNNNNNNNZ"।
ਇਹ ਫਾਰਮੈਟ ਸਾਲ, ਮਹੀਨਾ, ਦਿਨ, ਘੰਟਾ, ਮਿੰਟ, ਸਕਿੰਟ, ਨੈਨੋਸਕਿੰਟ ਅਤੇ ਜ਼ੁਲੂ ਸਮਾਂ ਖੇਤਰ, ਜਿਸ ਨੂੰ UTC, GMT ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਦਿਖਾਉਂਦਾ ਹੈ।
ਸਥਿਤੀ
ਤੈਅ ਹੋਇਆ।
ਵੇਰਵੇ
ਧਾਰਨਾਵਾਂ
ਸਾਨੂੰ ਇਨ੍ਹਾਂ ਟਾਈਮਸਟੈਂਪ ਟੈਕਸਟ ਸਟਰਿੰਗਾਂ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਲੋੜ ਹੈ, ਟਾਈਮਸਟੈਂਪ ਤੋਂ ਸਟਰਿੰਗ ਵਿੱਚ ਬਦਲਣ (ਜਿਸ ਨੂੰ ਸੀਰੀਅਲਾਈਜ਼ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ) ਅਤੇ ਸਟਰਿੰਗ ਤੋਂ ਟਾਈਮਸਟੈਂਪ ਵਿੱਚ ਬਦਲਣ (ਜਿਸ ਨੂੰ ਡੀਸੀਰੀਅਲਾਈਜ਼ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ) ਲਈ।
ਅਸੀਂ ਅਜਿਹਾ ਫਾਰਮੈਟ ਚਾਹੁੰਦੇ ਹਾਂ ਜੋ ਆਮ ਤੌਰ ਉੱਤੇ ਵਰਤਣ ਵਿੱਚ ਆਸਾਨ, ਬਦਲਣ ਵਿੱਚ ਆਸਾਨ ਅਤੇ ਕਿਸੇ ਵਿਅਕਤੀ ਲਈ ਪੜ੍ਹਨ ਵਿੱਚ ਆਸਾਨ ਹੋਵੇ।
ਅਸੀਂ ਬਾਹਰੀ ਸਿਸਟਮਾਂ ਦੀ ਵਿਆਪਕ ਲੜੀ ਨਾਲ ਅਨੁਕੂਲਤਾ ਚਾਹੁੰਦੇ ਹਾਂ ਜਿਨ੍ਹਾਂ ਉੱਤੇ ਸਾਡਾ ਕੰਟਰੋਲ ਨਹੀਂ, ਜਿਵੇਂ ਕਿ ਵਿਸ਼ਲੇਸ਼ਣ ਸਿਸਟਮ, ਡਾਟਾਬੇਸ ਸਿਸਟਮ, ਵਿੱਤੀ ਸਿਸਟਮ।
ਬੰਦਸ਼ਾਂ
ਕੁਝ ਸਿਸਟਮਾਂ ਵਿੱਚ ਸਮੇਂ ਦੀ ਸਟੀਕਤਾ ਦੀਆਂ ਸੀਮਾਵਾਂ ਹਨ। ਉਦਾਹਰਨ ਲਈ, macOS ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੀ date ਕਮਾਂਡ ਸਕਿੰਟਾਂ ਵਿੱਚ ਸਮੇਂ ਦੀ ਸਟੀਕਤਾ ਛਾਪ ਸਕਦੀ ਹੈ, ਪਰ ਨੈਨੋਸਕਿੰਟਾਂ ਵਿੱਚ ਨਹੀਂ।
ਪੱਖ
ਅਸੀਂ ਵਿਕਲਪਾਂ ਦੀ ਇੱਕ ਲੜੀ ਬਾਰੇ ਵਿਚਾਰ ਕੀਤਾ:
Unix epoch, ਯਾਨੀ ਇੱਕ ਵਧਦੀ ਹੋਈ ਸੰਖਿਆ।
ਸੰਖੇਪ ਟੈਕਸਟ ਫਾਰਮੈਟ "YYYYMMDDTHHMMSSNNNNNNNNN"।
ਸਥਾਨਕ ਸਮਾਂ ਖੇਤਰ ਬਨਾਮ UTC ਸਮਾਂ ਖੇਤਰ ਵਰਤਣਾ।
ਦਲੀਲ
ਆਮ ਵਰਤੋਂ ਲਈ, ਅਸੀਂ ਕੱਚੀ ਗਤੀ/ਆਕਾਰ ਨਾਲੋਂ ਮਨੁੱਖਾਂ ਲਈ ਪੜ੍ਹਨ/ਲਿਖਣ ਵਿੱਚ ਸੌਖ ਦੀ ਵਧੇਰੇ ਕਦਰ ਕਰਦੇ ਹਾਂ।
ਆਮ ਵਰਤੋਂ ਲਈ, ਅਸੀਂ ਅਜਿਹਾ ਫਾਰਮੈਟ ਚਾਹੁੰਦੇ ਹਾਂ ਜੋ ਮਸ਼ੀਨੀ ਸਿਸਟਮਾਂ ਵਿੱਚ ਠੀਕ ਕੰਮ ਕਰੇ, ਅਤੇ ਹੱਥੀਂ ਵੀ ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰੇ, ਜਿਵੇਂ ਕਿ ਨਮੂਨਾ ਡਾਟਾ ਲਿਖਣਾ, JSON ਆਉਟਪੁੱਟ ਪੜ੍ਹਨਾ, ਲੌਗ ਫਾਈਲ ਵਿੱਚ grep ਕਰਨਾ, ਆਦਿ।
ਗੈਰ-ਆਮ ਵਰਤੋਂ ਲਈ, ਜਿਵੇਂ ਕਿ ਉੱਚ ਕਾਰਗੁਜ਼ਾਰੀ ਕੰਪਿਊਟਿੰਗ, ਅਸੀਂ ਉਮੀਦ ਕਰਦੇ ਹਾਂ ਕਿ ਅਸੀਂ ਆਪਣੇ ਚੁਣੇ ਕਿਸੇ ਵੀ ਟੈਕਸਟ ਫਾਰਮੈਟ ਨੂੰ ਟੈਕਸਟ ਤੋਂ ਵਧੇਰੇ ਤੇਜ਼ ਫਾਰਮੈਟ, ਜਿਵੇਂ ਕਿ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦੀ ਅੰਦਰੂਨੀ ਮਿਤੀ ਆਬਜੈਕਟ ਕਿਸਮ, ਵਿੱਚ ਬਦਲ ਕੇ ਅਨੁਕੂਲਿਤ ਕਰਨਾ ਚਾਹਾਂਗੇ। ਇਸ ਲਈ HPC ਵਾਸਤੇ ਟੈਕਸਟ ਫਾਰਮੈਟ ਬਹੁਤਾ ਮਾਇਨੇ ਨਹੀਂ ਰੱਖਦਾ।
ਪ੍ਰਭਾਵ
ਸਾਡੇ ਵੱਖ-ਵੱਖ ਟੈਕਸਟ ਸਿਸਟਮ ਅਤੇ ਸਮਾਂ ਸਿਸਟਮ ਇਸ ਫਾਰਮੈਟ ਉੱਤੇ ਇਕੱਠੇ ਹੋ ਜਾਣਗੇ।
ਸੰਬੰਧਿਤ
ਸੰਬੰਧਿਤ ਫੈਸਲੇ
ਸਾਨੂੰ ਸਮੇਂ ਦੇ ਅੰਤਰਾਂ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਮਿਆਦਾਂ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਨੂੰ ਟਰੈਕ ਕਰਨ ਦਾ ਤੇਜ਼/ਆਸਾਨ ਤਰੀਕਾ ਵੀ ਚਾਹੀਦਾ ਹੋ ਸਕਦਾ ਹੈ। ਇਹ Unix epoch ਟਾਈਮਸਟੈਂਪਾਂ ਨਾਲ ਆਸਾਨ ਹਨ।
ਸੰਬੰਧਿਤ ਲੋੜਾਂ
ਸਾਨੂੰ ਆਪਣੇ ਫੈਸਲੇ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਦੀ ਲੋੜ ਪੈ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਜੇ ਸਾਡੀ ਕਿਸੇ ਖਾਸ ਕਿਸਮ ਦੇ ਲੌਗਿੰਗ ਸੁਨੇਹੇ ਦੀ ਮੋਹਰ ਲਈ ਸੰਬੰਧਿਤ ਲੋੜ ਹੋਵੇ, ਜਿਵੇਂ ਕਿ Splunk, Sumo, ELK ਆਦਿ ਲਈ।
ਸੰਬੰਧਿਤ ਕਲਾਕ੍ਰਿਤੀਆਂ
ਭਾਸ਼ਾ ਫਾਰਮੈਟਰ ਅਤੇ ਪਾਰਸਰ:
Rosetta Code ਦੀਆਂ ਉਦਾਹਰਨਾਂ:
SixArm ਦੀਆਂ ਉਦਾਹਰਨਾਂ:
ਸੰਬੰਧਿਤ ਸਿਧਾਂਤ
ਆਸਾਨੀ ਨਾਲ ਪਲਟਣਯੋਗ। ਅਸੀਂ ਕਾਫ਼ੀ ਆਸਾਨੀ ਨਾਲ ਕਿਸੇ ਵੱਖਰੇ ਫਾਰਮੈਟ, ਜਿਵੇਂ ਕਿ Unix epoch, ਵੱਲ ਬਦਲ ਸਕਦੇ ਹਾਂ।
ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਦੇ ਅਨੁਕੂਲਨ ਨੂੰ ਟਾਲੋ। ਆਮ ਵਰਤੋਂ ਲਈ ਸਾਨੂੰ ਮੁੱਠੀ ਭਰ ਵਾਧੂ ਅੱਖਰਾਂ ਦੀ ਬਹੁਤੀ ਪਰਵਾਹ ਨਹੀਂ, ਜਿਵੇਂ ਕਿ ਡੈਸ਼ਾਂ ਅਤੇ ਕੋਲਨਾਂ ਵਾਲਾ ਫਾਰਮੈਟ।
ਨੋਟ
ਨੋਟ ਇੱਥੇ ਜੋੜੋ।