ממיר חותמות זמן של יוניקס: תמיכה בפורמטים של 12/24 שעות
המיר חותמות זמן של יוניקס לתאריכים ושעות קריאים לבני אדם. בחר בין פורמטים של 12 שעות ו-24 שעות עם כלי המרה פשוט ונוח זה.
ממיר חותמת זמן של יוניקס
תאריך ושעה מומרות
תיעוד
ממיר חותמת זמן של יוניקס
מבוא
חותמת זמן של יוניקס (המכונה גם זמן POSIX או זמן אפוק) היא מערכת לתיאור נקודת זמן. היא מספר השניות שחלפו מאז 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. למשל, 15:00 מייצגת את השעה 3:00 PM.
-
פורמט 12 שעות: השעות נעות בין 1 ל-12, עם AM (ante meridiem) לזמנים מחצות עד צהריים, ו-PM (post meridiem) לזמנים מצהריים ועד חצות. למשל, 15:00 בפורמט 24 שעות מייצגת את השעה 3:00 PM.
הבחירה בין הפורמטים הללו היא בעיקר עניין של מסורת אזורית והעדפה אישית:
- פורמט 24 שעות בשימוש נפוץ ברוב אירופה, אמריקה הלטינית ואסיה, כמו גם בהקשרים מדעיים, צבאיים ורפואיים ברחבי העולם.
- פורמט 12 שעות נפוץ בארצות הברית, קנדה, אוסטרליה ובכמה מדינות דוברות אנגלית אחרות לשימוש יומיומי.
מקרים קצה ומגבלות
כאשר עובדים עם חותמות זמן של יוניקס, חשוב להיות מודעים למספר מקרים קצה ומגבלות:
-
חותמות זמן שליליות: מייצגות תאריכים לפני אפוק יוניקס (1 בינואר 1970). בעוד שהן תקפות מתמטית, חלק מהמערכות עשויות לא לטפל בחותמות זמן שליליות בצורה נכונה.
-
בעיית שנת 2038: חותמות זמן של יוניקס נשמרות לעיתים קרובות כמספרים שלמים בני 32 סיביות, שיתמוטטו ב-19 בינואר 2038. לאחר תאריך זה, מערכות של 32 סיביות לא יוכלו לייצג זמנים בצורה נכונה אלא אם ישונו להשתמש בסוג מספר שלם גדול יותר.
-
חותמות זמן גדולות מאוד: תאריכים עתידיים מאוד עשויים שלא להיות ניתנים לייצוג בכמה מערכות, או עשויים להיות מטופלים בצורה לא עקבית.
-
שניות מעוברות: זמן יוניקס אינו לוקח בחשבון שניות מעוברות, המתווספות מדי פעם ל-UTC כדי לפצות על סיבוב לא סדיר של כדור הארץ. משמעות הדבר היא שזמן יוניקס אינו מסונכרן בדיוק עם הזמן האסטרונומי.
-
שיקולים של אזור זמן: חותמות זמן של יוניקס מייצגות רגעים ב-UTC. המרה לזמן מקומי דורשת מידע נוסף על אזור הזמן.
-
שעת חיסכון: כאשר ממירים חותמות זמן לזמן מקומי, יש לקחת בחשבון את המורכבויות של המעברים בשעת חיסכון.
שימושים
חותמות זמן של יוניקס משמשות במספר יישומים ברחבי המחשוב וניהול הנתונים:
-
רשומות מסד נתונים: חותמות זמן משמשות לעיתים קרובות לרישום מתי נוצרו או שונו רשומות.
-
פיתוח אתרים: כותרות HTTP, עוגיות ומנגנוני מטמון משתמשים לעיתים קרובות בחותמות זמן של יוניקס.
-
קבצי יומן: יומני מערכת רושמים בדרך כלל אירועים עם חותמות זמן של יוניקס לצורך סדר כרונולוגי מדויק.
-
מערכות ניהול גרסאות: Git ומערכות ניהול גרסאות אחרות משתמשות בחותמות זמן כדי לרשום מתי נעשו מחויבויות.
-
תגובות API: רבים מה-APIs של האינטרנט כוללים חותמות זמן בתגובותיהם כדי לציין מתי נוצרו נתונים או מתי משאבים שונו לאחרונה.
-
מערכות קבצים: זמני יצירה ושינוי של קבצים נשמרים לעיתים קרובות כחלק מחותמות זמן של יוניקס.
-
ניהול מושבים: יישומי אינטרנט משתמשים בחותמות זמן כדי לקבוע מתי מושבי משתמשים צריכים לפוג.
-
ניתוח נתונים: חותמות זמן מספקות דרך סטנדרטית לעבוד עם נתונים זמניים ביישומי ניתוח.
חלופות
בעוד שחלקות זמן של יוניקס בשימוש נרחב, ישנם פורמטים חלופיים לייצוג זמן שעשויים להיות מתאימים יותר בהקשרים מסוימים:
-
ISO 8601: פורמט מחרוזת סטנדרטי (למשל, "2021-01-01T00:00:00Z") שהוא קריא לאדם תוך שמירה על יכולת מיון. הוא מועדף לעיתים קרובות להחלפת נתונים וליישומים המיועדים למשתמש.
-
RFC 3339: פרופיל של ISO 8601 בשימוש בפרוטוקולי אינטרנט, עם דרישות עיצוב מחמירות יותר.
-
פורמטים קריאים לאדם: מחרוזות תאריך מקומיות (למשל, "1 בינואר 2021") מתאימות יותר לאינטראקציה ישירה עם המשתמש, אך פחות מתאימות לחישוב.
-
Microsoft FILETIME: ערך בן 64 סיביות המייצג את מספר האינטרוולים של 100 ננו-שניות מאז 1 בינואר 1601, בשימוש במערכות Windows.
-
מספר יום יוליאני: בשימוש באסטרונומיה ובחלק מהיישומים המדעיים, סופר ימים מאז 1 בינואר 4713 לפני הספירה.
הבחירה של פורמט הזמן תלויה בגורמים כגון:
- דיוק נדרש
- צרכי קריאות אנושית
- מגבלות אחסון
- תאימות עם מערכות קיימות
- טווח התאריכים שצריך להיות מיוצג
היסטוריה
הרעיון של זמן יוניקס נבע מהפיתוח של מערכת ההפעלה יוניקס במעבדות בל בשנות ה-60 וה-70. ההחלטה להשתמש ב-1 בינואר 1970 כאפוק הייתה במידה מסוימת שרירותית אך מעשית באותה תקופה - היא הייתה קרובה מספיק כדי למזער את דרישות האחסון עבור תאריכים של עניין אך רחוקה מספיק מהעבר כדי להיות שימושית עבור נתונים היסטוריים.
היישום המקורי השתמש במספר שלם בן 32 סיביות כדי לשמור את מספר השניות, מה שהיה מספק עבור אורך החיים הצפוי של מערכות יוניקס באותה תקופה. עם זאת, החלטה זו הובילה לבעיית שנת 2038 (המכונה לעיתים "Y2K38" או "באג המילניום של יוניקס"), מכיוון שמספרים שלמים בני 32 סיביות יכולים לייצג רק תאריכים עד 19 בינואר 2038 (03:14:07 UTC).
כשהיוניקס ומערכות דומות ליוניקס הפכו פופולריות, חותמת הזמן של יוניקס הפכה לסטנדרט דה פקטו לייצוג זמן במחשוב. היא אומצה על ידי שפות תכנות רבות, מסדי נתונים ויישומים, והתרחבה הרבה מעבר לסביבת יוניקס המקורית.
מערכות מודרניות משתמשות יותר ויותר במספרים שלמים בני 64 סיביות עבור חותמות זמן, מה שמאריך את טווח הייצוג לכ-292 מיליארד שנים בכל הכיוונים מהאפוק, ובכך פותר את בעיית שנת 2038. עם זאת, מערכות ויישומים ישנים עשויים עדיין להיות פגיעים.
הפשטות והיכולת של חותמת הזמן של יוניקס הבטיחו את המשך הרלוונטיות שלה למרות הפיתוח של פורמטים יותר מתקדמים לייצוג זמן. היא נשארה מושג בסיסי במחשוב, המהווה בסיס למרבית התשתית הדיגיטלית שלנו.
דוגמאות קוד
הנה דוגמאות כיצד להמיר חותמות זמן של יוניקס לתאריכים קריאים לאדם בשפות תכנות שונות:
1// המרת חותמת זמן ב-JavaScript
2function convertUnixTimestamp(timestamp, use12Hour = false) {
3 // צור אובייקט תאריך חדש (JavaScript משתמש במילישניות)
4 const date = new Date(timestamp * 1000);
5
6 // אפשרויות פורמט
7 const options = {
8 year: 'numeric',
9 month: 'long',
10 day: 'numeric',
11 weekday: 'long',
12 hour: use12Hour ? 'numeric' : '2-digit',
13 minute: '2-digit',
14 second: '2-digit',
15 hour12: use12Hour
16 };
17
18 // המרה למחרוזת באמצעות עיצוב מקומי
19 return date.toLocaleString(undefined, options);
20}
21
22// דוגמת שימוש
23const timestamp = 1609459200; // 1 בינואר 2021 00:00:00 UTC
24console.log(convertUnixTimestamp(timestamp, false)); // פורמט 24 שעות
25console.log(convertUnixTimestamp(timestamp, true)); // פורמט 12 שעות
26
1# המרת חותמת זמן ב-Python
2import datetime
3
4def convert_unix_timestamp(timestamp, use_12hour=False):
5 # המרת חותמת זמן של יוניקס לאובייקט datetime
6 date = datetime.datetime.fromtimestamp(timestamp)
7
8 # עיצוב מחרוזת התאריך
9 if use_12hour:
10 format_string = "%A, %B %d, %Y %I:%M:%S %p" # פורמט 12 שעות עם AM/PM
11 else:
12 format_string = "%A, %B %d, %Y %H:%M:%S" # פורמט 24 שעות
13
14 return date.strftime(format_string)
15
16# דוגמת שימוש
17timestamp = 1609459200 # 1 בינואר 2021 00:00:00 UTC
18print(convert_unix_timestamp(timestamp, False)) # פורמט 24 שעות
19print(convert_unix_timestamp(timestamp, True)) # פורמט 12 שעות
20
1<?php
2// המרת חותמת זמן ב-PHP
3function convertUnixTimestamp($timestamp, $use12Hour = false) {
4 // מחרוזת פורמט
5 $formatString = $use12Hour
6 ? 'l, F j, Y g:i:s A' // פורמט 12 שעות עם AM/PM
7 : 'l, F j, Y H:i:s'; // פורמט 24 שעות
8
9 // המרה ועיצוב התאריך
10 return date($formatString, $timestamp);
11}
12
13// דוגמת שימוש
14$timestamp = 1609459200; // 1 בינואר 2021 00:00:00 UTC
15echo convertUnixTimestamp($timestamp, false) . "\n"; // פורמט 24 שעות
16echo convertUnixTimestamp($timestamp, true) . "\n"; // פורמט 12 שעות
17?>
18
1// המרת חותמת זמן ב-Java
2import java.time.Instant;
3import java.time.LocalDateTime;
4import java.time.ZoneId;
5import java.time.format.DateTimeFormatter;
6
7public class UnixTimestampConverter {
8 public static String convertUnixTimestamp(long timestamp, boolean use12Hour) {
9 // המרת חותמת זמן של יוניקס ל- Instant, ואז ל- LocalDateTime
10 Instant instant = Instant.ofEpochSecond(timestamp);
11 LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
12
13 // צור מעצב בהתאם לפורמט הרצוי
14 DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
15 use12Hour ? "EEEE, MMMM d, yyyy h:mm:ss a" : "EEEE, MMMM d, yyyy HH:mm:ss"
16 );
17
18 // החזרת התאריך המעוצב
19 return dateTime.format(formatter);
20 }
21
22 public static void main(String[] args) {
23 long timestamp = 1609459200; // 1 בינואר 2021 00:00:00 UTC
24 System.out.println(convertUnixTimestamp(timestamp, false)); // פורמט 24 שעות
25 System.out.println(convertUnixTimestamp(timestamp, true)); // פורמט 12 שעות
26 }
27}
28
1// המרת חותמת זמן ב-C#
2using System;
3
4class UnixTimestampConverter
5{
6 public static string ConvertUnixTimestamp(long timestamp, bool use12Hour)
7 {
8 // המרת חותמת זמן של יוניקס ל-DateTime
9 // חותמת זמן של יוניקס היא שניות מאז 1970-01-01
10 DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
11
12 // מחרוזת פורמט בהתאם להעדפה של 12 שעות או 24 שעות
13 string formatString = use12Hour
14 ? "dddd, MMMM d, yyyy h:mm:ss tt" // פורמט 12 שעות עם AM/PM
15 : "dddd, MMMM d, yyyy HH:mm:ss"; // פורמט 24 שעות
16
17 // החזרת מחרוזת התאריך המעוצבת
18 return dateTime.ToString(formatString);
19 }
20
21 static void Main()
22 {
23 long timestamp = 1609459200; // 1 בינואר 2021 00:00:00 UTC
24 Console.WriteLine(ConvertUnixTimestamp(timestamp, false)); // פורמט 24 שעות
25 Console.WriteLine(ConvertUnixTimestamp(timestamp, true)); // פורמט 12 שעות
26 }
27}
28
1# המרת חותמת זמן ב-Ruby
2require 'time'
3
4def convert_unix_timestamp(timestamp, use_12hour = false)
5 # המרת חותמת זמן של יוניקס לאובייקט זמן
6 time = Time.at(timestamp)
7
8 # עיצוב בהתאם להעדפה של 12 שעות או 24 שעות
9 if use_12hour
10 time.strftime("%A, %B %d, %Y %I:%M:%S %p") # פורמט 12 שעות עם AM/PM
11 else
12 time.strftime("%A, %B %d, %Y %H:%M:%S") # פורמט 24 שעות
13 end
14end
15
16# דוגמת שימוש
17timestamp = 1609459200 # 1 בינואר 2021 00:00:00 UTC
18puts convert_unix_timestamp(timestamp, false) # פורמט 24 שעות
19puts convert_unix_timestamp(timestamp, true) # פורמט 12 שעות
20
1// המרת חותמת זמן ב-Go
2package main
3
4import (
5 "fmt"
6 "time"
7)
8
9func convertUnixTimestamp(timestamp int64, use12Hour bool) string {
10 // המרת חותמת זמן של יוניקס ל-Time
11 t := time.Unix(timestamp, 0)
12
13 // מחרוזת פורמט בהתאם להעדפה של 12 שעות או 24 שעות
14 formatString := "Monday, January 2, 2006 "
15 if use12Hour {
16 formatString += "3:04:05 PM" // פורמט 12 שעות עם AM/PM
17 } else {
18 formatString += "15:04:05" // פורמט 24 שעות
19 }
20
21 // החזרת הזמן המעוצב
22 return t.Format(formatString)
23}
24
25func main() {
26 timestamp := int64(1609459200) // 1 בינואר 2021 00:00:00 UTC
27 fmt.Println(convertUnixTimestamp(timestamp, false)) // פורמט 24 שעות
28 fmt.Println(convertUnixTimestamp(timestamp, true)) // פורמט 12 שעות
29}
30
1// המרת חותמת זמן ב-Swift
2import Foundation
3
4func convertUnixTimestamp(_ timestamp: Int, use12Hour: Bool) -> String {
5 // צור תאריך מחותמת זמן של יוניקס
6 let date = Date(timeIntervalSince1970: TimeInterval(timestamp))
7
8 // צור DateFormatter
9 let formatter = DateFormatter()
10 formatter.dateStyle = .full
11
12 // קבע את סגנון הזמן בהתאם להעדפה של 12 שעות או 24 שעות
13 if use12Hour {
14 formatter.timeStyle = .medium
15 formatter.amSymbol = "AM"
16 formatter.pmSymbol = "PM"
17 } else {
18 formatter.timeStyle = .medium
19 formatter.dateFormat = formatter.dateFormat?.replacingOccurrences(of: "h:mm:ss a", with: "HH:mm:ss")
20 }
21
22 // החזרת התאריך המעוצב
23 return formatter.string(from: date)
24}
25
26// דוגמת שימוש
27let timestamp = 1609459200 // 1 בינואר 2021 00:00:00 UTC
28print(convertUnixTimestamp(timestamp, use12Hour: false)) // פורמט 24 שעות
29print(convertUnixTimestamp(timestamp, use12Hour: true)) // פורמט 12 שעות
30
1# המרת חותמת זמן ב-R
2convert_unix_timestamp <- function(timestamp, use_12hour = FALSE) {
3 # המרת חותמת זמן של יוניקס ל-POSIXct datetime
4 date_time <- as.POSIXct(timestamp, origin = "1970-01-01", tz = "UTC")
5
6 # עיצוב בהתאם להעדפה של 12 שעות או 24 שעות
7 if (use_12hour) {
8 format_string <- "%A, %B %d, %Y %I:%M:%S %p" # פורמט 12 שעות עם AM/PM
9 } else {
10 format_string <- "%A, %B %d, %Y %H:%M:%S" # פורמט 24 שעות
11 }
12
13 # החזרת מחרוזת התאריך המעוצבת
14 format(date_time, format_string)
15}
16
17# דוגמת שימוש
18timestamp <- 1609459200 # 1 בינואר 2021 00:00:00 UTC
19cat(convert_unix_timestamp(timestamp, FALSE), "\n") # פורמט 24 שעות
20cat(convert_unix_timestamp(timestamp, TRUE), "\n") # פורמט 12 שעות
21
1% המרת חותמת זמן ב-MATLAB
2function formattedDate = convertUnixTimestamp(timestamp, use12Hour)
3 % המרת חותמת זמן של יוניקס ל-datetime MATLAB
4 % תאריכי MATLAB הם ימים מאז 1900-01-01, כאשר 1 = 1900-01-01
5 % חותמות זמן של יוניקס הן שניות מאז 1970-01-01
6
7 % ראשית המרה לפורמט תאריך של MATLAB
8 % 25569 הוא מספר הימים בין 1900-01-01 ל-1970-01-01
9 excelDate = (timestamp / 86400) + 25569;
10
11 % עיצוב התאריך בהתאם להעדפה של 12 שעות או 24 שעות
12 if use12Hour
13 formattedDate = datestr(excelDate, 'dddd, mmmm dd, yyyy h:mm:ss AM/PM');
14 else
15 formattedDate = datestr(excelDate, 'dddd, mmmm dd, yyyy hh:mm:ss');
16 end
17end
18
19% דוגמת שימוש
20timestamp = 1609459200; % 1 בינואר 2021 00:00:00 UTC
21disp(convertUnixTimestamp(timestamp, false)) % פורמט 24 שעות
22disp(convertUnixTimestamp(timestamp, true)) % פורמט 12 שעות
23
1' המרת חותמת זמן ב-VBA של Excel
2Function ConvertUnixTimestamp(timestamp As Long, Optional use12Hour As Boolean = False) As String
3 ' המרת חותמת זמן של יוניקס לתאריך/שעה של Excel
4 ' חותמות זמן של Excel הן ימים מאז 1900-01-01, כאשר 1 = 1900-01-01
5 ' חותמות זמן של יוניקס הן שניות מאז 1970-01-01
6
7 ' ראשית המרה לפורמט תאריך של Excel
8 ' 25569 הוא מספר הימים בין 1900-01-01 ל-1970-01-01
9 Dim excelDate As Double
10 excelDate = (timestamp / 86400) + 25569
11
12 ' עיצוב התאריך בהתאם להעדפה של 12 שעות או 24 שעות
13 If use12Hour Then
14 ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy h:mm:ss AM/PM")
15 Else
16 ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy hh:mm:ss")
17 End If
18End Function
19
20' שימוש בגיליון עבודה:
21' =ConvertUnixTimestamp(1609459200, TRUE) ' פורמט 12 שעות
22' =ConvertUnixTimestamp(1609459200, FALSE) ' פורמט 24 שעות
23
טיפול במקרים קצה
כאשר עובדים עם חותמות זמן של יוניקס, חשוב לטפל במקרים קצה בצורה נכונה. הנה דוגמאות לטיפול בכמה מקרים קצה נפוצים:
1// טיפול במקרים קצה ב-JavaScript
2function safeConvertTimestamp(timestamp, use12Hour = false) {
3 // בדוק אם חותמת הזמן תקפה
4 if (timestamp === undefined || timestamp === null || isNaN(timestamp)) {
5 return "חותמת זמן לא תקפה";
6 }
7
8 // בדוק חותמות זמן שליליות (תאריכים לפני 1970)
9 if (timestamp < 0) {
10 // חלק מהדפדפנים עשויים לא לטפל בחותמות זמן שליליות בצורה נכונה
11 // השתמש בגישה יותר חסונה עבור תאריכים לפני 1970
12 const date = new Date(timestamp * 1000);
13 if (isNaN(date.getTime())) {
14 return "תאריך לא תקף (לפני 1970)";
15 }
16 }
17
18 // בדוק בעיית Y2K38 (למערכות 32 סיביות)
19 const maxInt32 = 2147483647; // הערך המקסימלי עבור מספר שלם בן 32 סיביות
20 if (timestamp > maxInt32) {
21 // שקול להשתמש ב-BigInt עבור חותמות זמן גדולות מאוד ב-JavaScript מודרני
22 console.warn("חותמת הזמן חורגת מהמגבלה של מספר שלם בן 32 סיביות (בעיה Y2K38)");
23 }
24
25 // המשך עם ההמרה הרגילה
26 try {
27 const date = new Date(timestamp * 1000);
28 const options = {
29 year: 'numeric',
30 month: 'long',
31 day: 'numeric',
32 weekday: 'long',
33 hour: use12Hour ? 'numeric' : '2-digit',
34 minute: '2-digit',
35 second: '2-digit',
36 hour12: use12Hour
37 };
38 return date.toLocaleString(undefined, options);
39 } catch (error) {
40 return "שגיאה בהמרת חותמת הזמן: " + error.message;
41 }
42}
43
הפניות
-
"זמן יוניקס." ויקיפדיה, קרן ויקימדיה, https://he.wikipedia.org/wiki/Unix_time
-
"בעיית שנת 2038." ויקיפדיה, קרן ויקימדיה, https://he.wikipedia.org/wiki/Year_2038_problem
-
אולסון, ארתור דיויד. "המורכבות של זמן קלנדרי." הקבוצה הפתוחה, https://www.usenix.org/legacy/events/usenix01/full_papers/olson/olson.pdf
-
"ISO 8601." ויקיפדיה, קרן ויקימדיה, https://he.wikipedia.org/wiki/ISO_8601
-
"RFC 3339: תאריך ושעה באינטרנט: חותמות זמן." קבוצת מהנדסי האינטרנט (IETF), https://tools.ietf.org/html/rfc3339
-
קרניגן, בריאן וו., ודניס מ. ריצ'י. "שפת התכנות C." פרנטיס הול, 1988.
משוב
לחץ על טוסט המשוב כדי להתחיל לתת משוב על כלי זה
כלים קשורים
גלה עוד כלים שעשויים להיות מועילים עבור זרימת העבודה שלך