
- Lua Tutorial
- Lua - Home
- Lua Basics
- Lua - Overview
- Lua - Environment
- Lua - Basic Syntax
- Lua - Comments
- Lua - Print Hello World
- Lua - Variables
- Lua - Data Types
- Lua - Operators
- Lua - Loops
- Lua - Generic For
- Lua - Decision Making
- Lua - Date and Time
- Lua Functions
- Lua - Functions
- Lua - Multiple Results
- Lua - Named Arguments
- Lua - Default/Optional Arguments
- Lua - Closures
- Lua - Uses of Closures
- Lua - Local Functions
- Lua - Anonymous Functions
- Lua - Functions in Table
- Lua - Proper Tail Calls
- Lua Strings
- Lua - Strings
- Lua - String Concatenation
- Lua - Loop Through String
- Lua - String to Int
- Lua - Split String
- Lua - Check String is NULL
- Lua Arrays
- Lua - Arrays
- Lua - Multi-dimensional Arrays
- Lua - Array Length
- Lua - Iterating Over Arrays
- Lua - Slicing Arrays
- Lua - Sorting Arrays
- Lua - Merging Arrays
- Lua - Sparse Arrays
- Lua - Searching Arrays
- Lua - Resizing Arrays
- Lua - Array to String Conversion
- Lua - Array as Stack
- Lua - Array as Queue
- Lua - Array with Metatables
- Lua - Immutable Arrays
- Lua - Shuffling Arrays
- Lua Iterators
- Lua - Iterators
- Lua - Stateless Iterators
- Lua - Stateful Iterators
- Lua - Built-in Iterators
- Lua - Custom Iterators
- Lua - Iterator Closures
- Lua - Infinite Iterators
- Lua - File Iterators
- Lua - Table Iterators
- Lua - Numeric Iterators
- Lua - Reverse Iterators
- Lua - Filter Iterators
- Lua - Range Iterators
- Lua - Chaining Iterators
- Lua Tables
- Lua - Tables
- Lua - Tables as Arrays
- Lua - Tables as Dictionaries
- Lua - Tables as Sets
- Lua - Table Length
- Lua - Table Iteration
- Lua - Table Constructors
- Lua - Loop through Table
- Lua - Merge Tables
- Lua - Nested Tables
- Lua - Accessing Table Fields
- Lua - Copy Table by Value
- Lua - Get Entries from Table
- Lua - Table Metatables
- Lua - Tables as Objects
- Lua - Table Inheritance
- Lua - Table Cloning
- Lua - Table Sorting
- Lua - Table Searching
- Lua - Table Serialization
- Lua - Weak Tables
- Lua - Table Memory Management
- Lua - Tables as Stacks
- Lua - Tables as Queues
- Lua - Sparse Tables
- Lua Lists
- Lua - Lists
- Lua - Inserting Elements into Lists
- Lua - Removing Elements from Lists
- Lua - Iterating Over Lists
- Lua - Reverse Iterating Over Lists
- Lua - Accessing List Elements
- Lua - Modifying List Elements
- Lua - List Length
- Lua - Concatenate Lists
- Lua - Slicing Lists
- Lua - Sorting Lists
- Lua - Reversing Lists
- Lua - Searching in Lists
- Lua - Shuffling List
- Lua - Multi-dimensional Lists
- Lua - Sparse Lists
- Lua - Lists as Stacks
- Lua - Lists as Queues
- Lua - Functional Operations on Lists
- Lua - Immutable Lists
- Lua - List Serialization
- Lua - Metatables with Lists
- Lua Modules
- Lua - Modules
- Lua - Returning Functions from Modules
- Lua - Returning Functions Table from Modules
- Lua - Module Scope
- Lua - SubModule
- Lua - Module Caching
- Lua - Custom Module Loaders
- Lua - Namespaces
- Lua - Singleton Modules
- Lua - Sharing State Between Modules
- Lua - Module Versioning
- Lua Metatables
- Lua - Metatables
- Lua - Chaining Metatables
- Lua Coroutines
- Lua - Coroutines
- Lua File Handling
- Lua - File I/O
- Lua - Opening Files
- Lua - Modes for File Access
- Lua - Reading Files
- Lua - Writing Files
- Lua - Closing Files
- Lua - Renaming Files
- Lua - Deleting Files
- Lua - File Buffers and Flushing
- Lua - Reading Files Line by Line
- Lua - Binary File Handling
- Lua - File Positioning
- Lua - Appending to Files
- Lua - Error Handling in File Operations
- Lua - Checking if File exists
- Lua - Checking if File is Readable
- Lua - Checking if File is Writable
- Lua - Checking if File is ReadOnly
- Lua - File Descriptors
- Lua - Creating Temporary Files
- Lua - Working with Large Files
- Lua Advanced
- Lua - Error Handling
- Lua - Debugging
- Lua - Garbage Collection
- Lua - Object Oriented
- Lua - Web Programming
- Lua - Database Access
- Lua - Game Programing
- Lua Useful Resources
- Lua - Quick Guide
- Lua - Useful Resources
- Lua - Discussion
Lua - Date & Time
Lua provides following functions to do all operations on date and time like getting formatted dates, date manipulations, getting current time, getting time differences etc.
date()− This function is used to get formatted date, current date
time()− This function is used to get a particular timestamp as per provided arguments
clock()− This function provides the CPU clock time and can be used to compute execution time
difftime()− This utility function can be used to get difference between two timestamps in seconds
Following examples showcase various scenarios.
Example - Get Current Date and Time
A simple example to get current date and time is shown below.
main.lua
-- get the system current date and time currentDate = os.date() -- print the date print(currentDate)
Output
When we run the above program, we may get the similar output.
Wed Oct 16 09:28:49 2024
Example - Get Formatted Date
A simple example to get formatted date is shown below.
main.lua
-- get the formatted date formattedDate = os.date("%d-%m-%Y") -- print the date print(formattedDate)
Output
When we run the above program, we may get the similar output.
15-10-2024
Format Codes
To specify the time format, use a time pattern string. In this pattern, all ASCII letters are reserved as pattern letters, which are defined as the following −
Character | Description | Example |
---|---|---|
a | Abbreviated weekday name | Wed |
A | Full weekday name | Wednesday |
b | abbreviated month name | Sep |
B | full month name | September |
c | date and time | 09/16/98 23:48:10 |
d | day of the month | (16)[01-31] |
H | hour, using a 24-hour clock | (23) [00-23] |
I | hour, using a 12-hour clock | (11) [01-12] |
M | minute | (48) [00-59] |
m | month | (09) [01-12] |
p | either "am" or "pm" | (pm) |
S | second | (10) [00-61] |
w | weekday | (3) [0-6 = Sunday-Saturday] |
x | date | 09/16/98 |
X | time | 23:48:10 |
Y | full year | 1998 |
y | two-digit year | (98) [00-99] |
% | the character `%´ | % |
Example - Get Difference in seconds
A simple example to get timestamps and difference between them is shown below.
main.lua
-- define and get a date time1 = os.time({year = 2024, month = 9, day = 15, hour = 8, min = 0}) - define another date time2 = os.time({year = 2024, month = 9, day = 15, hour = 9, min = 0}) -- compute the difference between two dates diff = os.difftime(time2, time1) -- print the difference print("Time difference:", diff, "seconds")
Output
When we run the above program, we will get the following output−
Time difference: 3600.0 seconds
Example - Getting execution time
A simple example to get execution time of any time consuming process is shown below.
main.lua
-- CPU Start Time startTime = os.clock() -- a time-consuming task for i = 1, 10000000 do math.sqrt(i) end -- CPU End Time endTime = os.clock() -- Print the elapsed time print("Elapsed CPU time:", endTime - startTime, "seconds")
Output
When we run the above program, we may get the similar output.
Elapsed CPU time: 0.225313 seconds