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