חלק מהותי בעולם המודרני הם תקנים או סטנדרטים בין-לאומיים העומדים בבסיס המסחר, התקשורת והכלכלה הגלובלית. האחידות מאפשרת ייצור המוני, הובלה יעילה והעברת מידע פשוטה בין גופים שונים המדברים שפות שונות ועושים שימוש במערכות שונות.
אחד מהארגונים הבולטים ביצירת ויישום של תקנים בין לאומיים הוא ה – International Organization for Standardization המוכר יותר בשם ISO (כן, הם מתעקשים שהקיצור מבוטא כמילה אחת - "איזו" - ולא כראשי-תיבות "איי, אס, או").
התקנים של הארגון הזה מקיפים אותנו בכל זמן גם אם אנחנו לא שמים לכך לב. מי שזוכר את הפילם שהשתמשו בהם לצילום לפני כמה אלפי שנים בטח עוד זוכר את מדד ה – ISO שמדד את הרגישות של הפילם לאור. המדד הזה המשיך גם למצלמות הדיגיטליות וחובבי הצילום מכירים אותו היטב עד היום.
גם בכביש אנחנו מוקפים בתקני ISO שונים במכוניות שלנו ובציוד מסביבנו כמו למשל המכולות – אותן קופסאות מתכת גדולות שמשמשות להובלת מטען באוניות ומשאיות. המכולות באות בגדלים שונים שנקבעו ע"י ה – ISO למשל: 20 פיט (כ – 6 מטר), 40 פיט (כ – 12 מטר) ועוד מספר גדלים מצומצם וכך מבטיחים שאותה מכולה תתאים בכל ספינות המטען ובכל המשאיות בעולם (ארה"ב המציאה כמה מידות משלה אבל לה מותר).
אפילו ב – SAS יש למומחי ה – ISO נגיעה עם התקן שלהם לייצוג תאריכים הידוע בשם ISO8601. התקן, כמו כל התקנים, בהחלט נראה כאילו נוצר ע"י ועדה, כלומר ארוך, מורכב ומלא ניסוחים מרדימים אבל בגדול תאריך מיוצג ע"י שנה, חודש ויום מופרדים במקפים, האות T ואז שעות, דקות ושניות המופרדות בנקודתיים. המקפים והנקודתיים הם אופציונלים. בהתאם לכך יש ב – SAS מגוון רחב של format-ים ו – informat-ים לשם קריאה וכתיבה של תאריכים המיוצגים עפ"י תקן ה – ISO8601 למשל:
data _null_;
* FORMATs;
date="31jul2021"d;
put date= b8601da.; * ISO8601 date in short notation;
put date= e8601da.; * ISO8601 date in extended notation;
datetime="31jul2021:21:15:47"dt;
put datetime= b8601dt.; * ISO8601 datetime in short notation;
put datetime= e8601dt.; * ISO8601 datetime in extended notation;
put datetime= e8601lx.; * ISO8601 datetime in extended notation including the time zone;
time="21:15:47"t;
put time= b8601tm.;* ISO8601 time in short notation;
put time= e8601tm.;* ISO8601 time in extended notation;
put time= e8601lz.;* ISO8601 time in extended notation including the time zone;
* INFORMATs;
basic_iso_date="20210731";
date=input(basic_iso_date, b8601da.);
put date= ddmmyy10.;
extended_iso_date="2021-07-31";
date=input(extended_iso_date, e8601da.);
put date= ddmmyy10.;
extended_iso_datetime="2021-07-31T15:47";
datetime=input(extended_iso_datetime, e8601dt.);
put datetime= datetime22.;
run;
חגי