Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP C C++ C# AWS W3.CSS HOW TO BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING HTML & CSS BASH RUST TOOLS

C Tutorial

C HOME C Intro C Get Started C Syntax C Output C Comments C Variables C Data Types C Type Conversion C Constants C Operators C Booleans C If...Else C Switch C While Loop C For Loop C Break/Continue C Arrays C Strings C User Input C Memory Address C Pointers

C Functions

C Functions C Function Parameters C Pass By Reference C Scope C Function Declaration C Functions Challenge C Math Functions C Inline Functions C Recursion C Function Pointers

C Files

C Create Files C Write To Files C Read Files

C Structures

C Structures C Structs Challenge C Nested Structures C Arrays of Structs C Structs & Pointers C Unions C typedef C Struct Padding

C Enums

C Enums

C Memory

C Memory Management C Allocate Memory C Access Memory C Reallocate Memory C Deallocate Memory C Structs and Memory C Memory Example C Memory Mistakes

C Errors

C Errors C Error Challenge C Debugging C NULL C Error Handling C Input Validation

C Problem Solving

C Problem Solving C Build the Logic C Edge Cases & Errors C Test Cases

C Projects

C Projects

C More

C Date C Random Numbers C Macros C Organize Code C Storage Classes C Bitwise Operators C Fixed-width Integers C Command-Line Args

C DSA

C DSA Intro C Searching C Sorting C Stacks C Queues C Linked Lists C Trees C Hash Tables C Big O

C Cert

C Certificate

C Examples

C Examples C Real-Life Examples C Exercises C Quiz C Code Challenges C Practice Problems C Compiler C Syllabus C Study Plan C Interview Q&A

C Reference

C Reference C Keywords C Preprocessor C <assert.h> C <ctype.h> C <errno.h> C <limits.h> C <math.h> C <stdbool.h> C <stddef.h> C <stdint.h> C <stdio.h> C <stdlib.h> C <string.h> C <time.h>

C time strftime() Function


Example

Print the current date with the names of the day and month:

time_t now = time(NULL);
struct tm *t = localtime(&now);
char buffer[50];

strftime(buffer, sizeof(buffer), "%A, %B %d, %Y", t);
printf("%s", buffer);

Try it Yourself »


Definition and Usage

The strftime() function writes a date and time into a string, in a format that you choose.

The format is text with format codes that start with %. Each code is replaced with a part of the date or time, and other characters (like , and -) are copied as they are. See all format codes in the table below.

Note: These codes are not the same as in printf(). In strftime(), %d means the day of the month, not an integer.

The strftime() function is defined in the <time.h> header file.


Syntax

size_t strftime(char *str, size_t size, const char *format, const struct tm *timeptr);

Parameter Values

Parameter Description
str Required. The char array to write the result to.
size Required. The maximum number of characters to write, including the null character (\0). Usually the size of the array, like sizeof(buffer).
format Required. The format, with format codes from the table below.
timeptr Required. A pointer to a struct tm with the date and time, for example from localtime().

Technical Details

Returns: A size_t value with the number of characters written, not counting the null character. If the result does not fit in the array, it returns 0.

Format Codes

The examples show Thursday, June 26, 2025, at 14:30:05 UTC:

Code Meaning Example
%a Short name of the day Thu
%A Name of the day Thursday
%b Short name of the month Jun
%B Name of the month June
%c Date and time Thu Jun 26 14:30:05 2025
%d Day of the month (01-31) 26
%F Date as year-month-day (the same as %Y-%m-%d) 2025-06-26
%H Hour, 24-hour clock (00-23) 14
%I Hour, 12-hour clock (01-12) 02
%j Day of the year (001-366) 177
%m Month (01-12) 06
%M Minute (00-59) 30
%p AM or PM PM
%S Second (00-60) 05
%T Time as hour:minute:second (the same as %H:%M:%S) 14:30:05
%u Day of the week, Monday is 1 (1-7) 4
%w Day of the week, Sunday is 0 (0-6) 4
%x Date 06/26/25
%X Time 14:30:05
%y Year, last two digits (00-99) 25
%Y Year 2025
%z Offset from UTC +0000
%Z Name of the time zone UTC
%% A % character %

Note: %c, %x and %X can look different on other systems and in other languages.


Related Pages

Read more about dates and times in our C Date and Time Tutorial.



Free account

Track your progress

XP earned 0 Day streak 0 Spaces 0 League —

New

Learn in Adventure Mode W3Schools Adventure App

Coding fundamentals as bite-sized lessons and challenges.

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy.

Copyright 1999-2026 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.