Problems with Datetime transform with SmartFormat for Net (C#)
SmartFormat is a is a lightweight text templating library to replace string.Format. Unlike common String.Format, with SmartFormat you can read templates from text files or another source. Here I will share the way, how I tried to write the DateTime in the format 'dd/MM/yyyy HH:mm:ss'. It was not so obvious.
The link to SmartFormat project is https://github.com/axuno/SmartFormat.
So, I wanted to write the Datetime value as 'dd/MM/yyyy HH:mm:ss'.
Obviously, the potential way to write the date is like this:
DateTime dateTime = DateTime.Now;
var smartFormat = Smart.Format("{0:dd/MM/yyyy HH:mm:ss}", dateTime);
But whatever I did, always got the error:
Unhandled exception. SmartFormat.Core.Formatting.FormattingException: Error parsing format string: No suitable Formatter could be found at 0
{0:dd/MM/yyyy HH:mm:ss}
at SmartFormat.Evaluator.FormatError(FormatItem errorItem, Exception innerException, Int32 startIndex, FormattingInfo formattingInfo)
at SmartFormat.Evaluator.InvokeFormatters(FormattingInfo formattingInfo)
at SmartFormat.Evaluator.WriteFormat(FormattingInfo formattingInfo)
at SmartFormat.SmartFormatter.ExecuteFormattingAction(SmartFormatter formatter, IFormatProvider provider, Format formatParsed, IList`1 args, IOutput output, Action`1 doWork)
at SmartFormat.SmartFormatter.FormatInto(IOutput output, IFormatProvider provider, Format formatParsed, IList`1 args)
at SmartFormat.SmartFormatter.Format(IFormatProvider provider, Format formatParsed, IList`1 args)
at SmartFormat.SmartFormatter.Format(IFormatProvider provider, String format, IList`1 args)
at SmartFormat.SmartFormatter.Format(String format, Object[] args)
at SmartFormat.Smart.Format(String format, Object arg0)
As I understood, the reason is that SmartFormat uses ':' as a system separator for variable and formatting. So, how to write the datetime in the required format.
The solution is easy but may be not very flexible.
var smartFormat = Smart.Format("{0:dd/MM/yyyy} {0:HH}{0:mm}{0:ss}", dateTime);
If you load the template from text file or database, use the next format
{ActionDate:dd/MM/yyyy} {ActionDate:HH}:{ActionDate:mm}:{ActionDate:ss}
Net 10.0 is not available for Azure Functions. How to fix
Custom Label with multiple styles in TextField of Fluent UI
First impressions after using the new SPFX 1.22.2 with Heft