Converting a date into a string

C#:
Converting a date into a string

How to:

In C#, you have the DateTime object and a bunch of ways to turn it into a string. Here are a few:

DateTime now = DateTime.Now;
string defaultString = now.ToString(); // Default format
string specificFormat = now.ToString("yyyy-MM-dd"); // Custom format, here ISO 8601
string withCulture = now.ToString("d", new CultureInfo("en-US")); // U.S. culture short date

Console.WriteLine(defaultString); // Output depends on system's culture settings
Console.WriteLine(specificFormat); // Output: "2023-04-01"
Console.WriteLine(withCulture); // Output: "4/1/2023"

Deep Dive

Way back, date and string manipulation were trickier. Today, C#’s DateTime provides .ToString() with overloads for culture and format. The IFormatProvider interface, like CultureInfo, controls culture-specific formatting.

Alternatives? Sure! String.Format and interpolation ($"{now:yyyy-MM-dd}") are options for inserting dates into strings with context. DateTimeOffset is handy for time zone specifics.

Implementation-wise, remember that DateTime is a struct, hence a value type. Converting it doesn’t change the original: immutability for the win. Choose your string format wisely based on your audience (end-users) and the system you’re interfacing with (databases, APIs).

See Also