මෙය වැදගත් හා පුදුම සහගත කාරණයක්. සත්යය නම්, කාලය දිගටම පවත්වා ගැනීම සඳහා සම්පූර්ණයෙන්ම තෘප්තිමත් ප්රමිතියක් නොමැති බවයි. උදාහරණයක් ලෙස, SQL ප්රමිතිය සහ ISO ආකෘතිය (ISO 8601) පැහැදිලිවම ප්රමාණවත් නොවේ.
සංකල්පීය දෘෂ්ටි කෝණයෙන් බලන කල, යමෙකු සාමාන්යයෙන් කාල-දින දත්ත වර්ග දෙකක් සමඟ කටයුතු කරන අතර ඒවා වෙන්කර හඳුනා ගැනීම පහසුය (ඉහත ප්රමිතීන් එසේ නොවේ): “ භෞතික කාලය ” සහ “ සිවිල් කාලය ”.
“භෞතික” ක්ෂණික ක්ෂණික විද්යාව යනු භෞතික විද්යාව සමඟ ගනුදෙනු කරන අඛණ්ඩ විශ්වීය කාලරාමුවෙහි ලක්ෂ්යයකි (සාපේක්ෂතාවාදය නොසලකා හැරීම). මෙම සංකල්පය යූටීසී හි ප්රමාණවත් ලෙස කේතනය කළ හැකිය, උදාහරණයක් ලෙස (ඔබට අධික තත්පර නොසලකා හැරිය හැකි නම්).
“සිවිල්” වේලාව යනු සිවිල් සම්මතයන් අනුගමනය කරන දිවා කාලයේ පිරිවිතරයකි: මෙහි කාල ලක්ෂ්යයක් දිවා කාල ක්ෂේත්ර (Y, M, D, H, MM, S, FS) සහ TZ (කාල කලාප පිරිවිතර) මගින් සම්පුර්ණයෙන්ම නියම කරනු ලැබේ. (ඇත්ත වශයෙන්ම "දින දර්ශනයක්" ද වේ; නමුත් අපි සාකච්ඡාව ග්රෙගෝරියානු දින දර්ශනයට පමණක් සීමා කරමු යැයි සිතමු). කාල කලාපයක් සහ දින දර්ශනයක් ඒකාබද්ධව (ප්රතිපත්තිමය වශයෙන්) එක් නිරූපණයක සිට තවත් නිරූපණයකට සිතියම් ගත කිරීමට ඉඩ දෙයි. නමුත් සිවිල් හා භෞතික කාල ක්ෂණිකයන් මූලික වශයෙන් විවිධ වර්ගවල විශාලත්වයන් වන අතර ඒවා සංකල්පමය වශයෙන් වෙන් කොට වෙනස් ලෙස සැලකිය යුතුය (ප්රතිසමයක්: බයිට් වල අරා සහ අක්ෂර නූල්).
ගැටළුව අවුල් සහගත වන්නේ අප මෙවැනි සිදුවීම් එකිනෙකට වෙනස් ලෙස කථා කරන නිසාත්, සිවිල් කාලය දේශපාලන වෙනස්කම් වලට භාජනය වන නිසාත් ය. ගැටලුව (සහ මෙම සංකල්ප වෙන්කර හඳුනා ගැනීමේ අවශ්යතාවය) අනාගතයේ සිදුවීම් සඳහා වඩාත් පැහැදිලි වේ. උදාහරණය ( මෙහි මගේ සාකච්ඡාවෙන් ලබා ගත්) .
ජෝන් සිය දින දර්ශනයේ දිවා කාලයේ යම් සිදුවීමක් සඳහා 2019-Jul-27, 10:30:00
TZ = මතක් කිරීමක් සටහන් කරයි
Chile/Santiago
(එය GMT-4 ඕෆ්සෙට් කර ඇත, එබැවින් එය UTC ට අනුරූප වේ 2019-Jul-27 14:30:00
). නමුත් අනාගතයේ යම් දවසක, TZ ඕෆ්සෙට් එක GMT-5 ලෙස වෙනස් කිරීමට රට තීරණය කරයි.
දැන්, දවස පැමිණි විට ... එම මතක් කිරීම ක්රියාත්මක විය යුතුද?
අ) 2019-Jul-27 10:30:00 Chile/Santiago
= UTC time 2019-Jul-27 15:30:00
?
හෝ
ආ) 2019-Jul-27 9:30:00 Chile/Santiago
= UTC time 2019-Jul-27 14:30:00
?
“කරුණාකර මාව නාද කරන්න” යනුවෙන් දින දර්ශනයට ජෝන් පැවසූ විට සංකල්පමය වශයෙන් අදහස් කළේ කුමක්දැයි කිසිවෙකු දන්නේ නැත්නම් නිවැරදි පිළිතුරක් නැත 2019-Jul-27, 10:30:00
TZ=Chile/Santiago
.
ඔහු අදහස් කළේ "සිවිල් දිනය-වේලාව" ("මගේ නගරයේ ඔරලෝසු 10:30 ට කියන විට")? එවැනි අවස්ථාවක, A) නිවැරදි පිළිතුරයි.
නැතහොත් ඔහු අදහස් කළේ අපගේ විශ්වයේ අඛණ්ඩ කාල රේඛාවේ ලක්ෂ්යයක් වන “භෞතික ක්ෂණික ක්ෂණික මොහොතක්”, “ඊළඟ සූර්යග්රහණය සිදු වූ විට” කියාද? එවැනි අවස්ථාවක, B පිළිතුර නිවැරදි ය.
දිනය / වේලාව ඒපීඅයි කිහිපයක් මෙම වෙනස නිවැරදිව ලබා ගනී: ඒවා අතර, ඊළඟ (තෙවන!) ජාවා ඩේටයිම් ඒපීඅයි (ජේඑස්ආර් 310) හි පදනම වන ජෝඩාටයිම් .
GETDATE()
SQL හි මෙම ක්රමය UTC වනු ඇත (කැමති පරිදිDateTime.Now
). තවද කිසිදු ආකාරයක ස්වයංක්රීය ඩීඑස්ටී වෙනස්කම් මගින් සේවාදායකය ක්රියාත්මක නොවේ.