With String.Format()
it is possible to format for example DateTime
objects in many different ways. Every time I am looking for a desired format I need to search around on Internet. Almost always I find an example I can use. For example:
String.Format("{0:MM/dd/yyyy}", DateTime.Now); // "09/05/2012"
But I don't have any clue how it works and which classes support these 'magic' additional strings.
So my questions are:
String.Format
map the additional information MM/dd/yyyy
to a string result?String.Format("{0:MyCustomFormat}", new MyOwnClass())
The Format String is the argument of the Format Function and is an ASCII Z string which contains text and format parameters, like: printf (“The magic number is: %d\n”, 1911); The Format String Parameter, like %x %s defines the type of conversion of the format function.
The format() method formats the specified value(s) and insert them inside the string's placeholder. The placeholder is defined using curly brackets: {}. Read more about the placeholders in the Placeholder section below. The format() method returns the formatted string.
In C#, Format() is a string method. This method is used to replace one or more format items in the specified string with the string representation of a specified object.In other words, this method is used to insert the value of the variable or an object or expression into another string.
In java, String format() method returns a formatted string using the given locale, specified format string, and arguments. We can concatenate the strings using this method and at the same time, we can format the output concatenated string.
String.Format
matches each of the tokens inside the string ({0}
etc) against the corresponding object: https://docs.microsoft.com/en-us/dotnet/api/system.string.format#overloads
A format string is optionally provided:
{ index[,alignment][ : formatString] }
If formatString
is provided, the corresponding object must implement IFormattable and specifically the ToString
method that accepts formatString
and returns the corresponding formatted string: https://docs.microsoft.com/en-us/dotnet/api/system.iformattable.tostring
An IFormatProvider
may also be used to capture basic formatting standards/defaults etc. Examples here and here.
So the answers to your questions in order:
It uses the IFormattable
interface's ToString()
method on the DateTime
object and passes that the MM/dd/yyyy
format string. It is that implementation which returns the correct string.
Any object that implement IFormattable
supports this feature. You can even write your own!
Yes, see above.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With