How to Format Datetime in C#

  1. Formatting DateTime in C# Using ToString()
  2. Formatting DateTime in C# Using String.Format()
How to Format Datetime in C#

This tutorial will demonstrate how to create a formatted string from a DateTime variable using the ToString() or String.Format function.

Date Format Specifiers are the string representation of the different components in a DateTime variable. You can use them in both the ToString() and String.Format functions to specify your own custom DateTime format.

Here are some commonly used date format specifiers.

Sample Date: 08/09/2021 3:25:10 PM

Custom DateTime Format Specifiers:

Format Specifier Output DateTime Part
d 8 Day
dd 08 Day
M 9 Month
MM 09 Month
MMM Sep Month
MMMM September Month
yy 21 Year
yyyy 2021 Year
hh 03 Hour
HH 15 Hour
mm 25 Minute
ss 10 Second
tt PM Tim

Standard DateTime Format Specifiers:

Specifier DateTimeFormatInfo Property Pattern Value
t ShortTimePattern h:mm tt
d ShortDatePattern M/d/yyyy
F FullDateTimePattern dddd, MMMM dd, yyyy h:mm:ss tt
M MonthDayPattern MMMM dd

For a more detailed list and more examples for DateTime Format specifiers, you can check out the official documentation from Microsoft below:

Formatting DateTime in C# Using ToString()

Formatting a DateTime to string is as simple as applying the ToString() to the DateTime and supplying the format you would like to use.

DateTime.Now.ToString("ddMMyyyy") DateTime.Now.ToString("d")

Example:

using System;

namespace ConsoleApp1 {
  class Program {
    static void Main(string[] args) {
      // Initialize the datetime value
      DateTime date = new DateTime(2021, 12, 18, 16, 5, 7, 123);

      // Format the datetime value to a standard format (ShortDatePattern)
      string stanadard_fmt_date = date.ToString("d");

      // Format the datetime value to a custom format
      string custom_fmt_date = date.ToString("ddMMyyyy");

      // Print the datetime formatted in the different ways
      Console.WriteLine("Plain DateTime: " + date.ToString());
      Console.WriteLine("Standard DateTime Format: " + stanadard_fmt_date);
      Console.WriteLine("Custom DateTime Format: " + custom_fmt_date);
    }
  }
}

Output:

Plain DateTime: 18/12/2021 4:05:07 pm
Standard DateTime Format: 18/12/2021
Custom DateTime Format: 18122021

Formatting DateTime in C# Using String.Format()

Formatting a DateTime to string using the String.Format method is done by providing both the format and the DateTime value in the parameters. The format must be enclosed in brackets and prefixed with "0:" when printing the format.

String.Format("{0:ddMMyyyy}", DateTime.Now) String.Format("{0:d}", DateTime.Now)

Example:

using System;

namespace ConsoleApp1 {
  class Program {
    static void Main(string[] args) {
      // Initialize the datetime value
      DateTime date = new DateTime(2021, 12, 18, 16, 5, 7, 123);

      // Format the datetime value to a standard format (ShortDatePattern)
      string stanadard_fmt_date = String.Format("{0:d}", date);

      // Format the datetime value to a custom format
      string custom_fmt_date = String.Format("{0:ddMMyyyy}", date);

      // Print the datetime formatted in the different ways
      Console.WriteLine("Plain DateTime: " + date.ToString());
      Console.WriteLine("Standard DateTime Format: " + stanadard_fmt_date);
      Console.WriteLine("Custom DateTime Format: " + custom_fmt_date);
    }
  }
}

Output:

Plain DateTime: 18/12/2021 4:05:07 pm
Standard DateTime Format: 18/12/2021
Custom DateTime Format: 18122021

Related Article - Csharp Datetime