Garry's Mod Wiki

os.date

  string os.date( string format, number time = os.time() )

Description

Returns the date/time as a formatted string or in a table.

Arguments

1 string format
The format string.

If this is equal to *t or !*t then this function will return a DateData structure, otherwise it will return a string.

If this starts with an !, the returned data will use the UTC timezone rather than the local timezone.

See http://www.mkssoftware.com/docs/man3/strftime.3.asp for available format flags.

Not all flags are available on all operating systems and the result of using an invalid flag is undefined. This currently crashes the game on Windows. Most or all flags are available on OS X and Linux but considerably fewer are available on Windows. See http://msdn.microsoft.com/en-us/library/fe06s4ak.aspx for a list of available flags on Windows. Note that the # flags also crashes the game on Windows.

Issue Tracker: 329

Known formats that work on all platforms:

Format Description Example of the output
%a Abbreviated weekday name Wed
%A Full weekday name Wednesday
%b Abbreviated month name Sep
%B Full month name September
%c Locale-appropriate date and time Varies by platform and language settings
%d Day of the month [01-31] 16
%H Hour, using a 24-hour clock [00-23] 23
%I Hour, using a 12-hour clock [01-12] 11
%j Day of the year [001-365] 259
%m Month [01-12] 09
%M Minute [00-59] 48
%p Either am or pm pm
%S Second [00-60] 10
%w Weekday [0-6 = Sunday-Saturday] 3
%W Week of the year [00-53] 37
%x Date (Same as %m/%d/%y) 09/16/98
%X Time (Same as %H:%M:%S) 24:48:10
%y Two-digit year [00-99] 98
%Y Full year 1998
%z Timezone -0300
%% A percent sign %
2 number time = os.time()
Time to use for the format.

Returns

1 string
Formatted date
This will be a DateData structure if the first argument equals to *t or !*t

Example

This will use the os.time() function, and return it in a friendly way. os.time() is useful for storing as a date stamp but needs this to make it readable.

local Timestamp = os.time() local TimeString = os.date( "%H:%M:%S - %d/%m/%Y" , Timestamp ) print( "Timestamp:", Timestamp ) print( "TimeString:", TimeString )
Output:
Timestamp: 1584402168 TimeString: 23:42:48 - 16/03/2020