В datetime это нормально использовать оба. Я предпочитаю использовать и видеть первое решение (конечно же, с отсутствующими скобками).
String.Format гораздо полезнее, если у вас есть строка с пробелами для каких-то параметров. Тогда это метод убийцы, который действительно поможет вам организовать ваш код.
Ответ 4
Используя строковую интерполяцию с методами расширения, я нашел инвариантный и общий способ решить это следующим образом:
public static class Extensions
{
public static string ToStringInvariant<T>(this T obj)
{
return System.FormattableString.Invariant($"{obj}");
}
}
Использование просто, просто используйте .ToStringInvariant() вместо .ToString(). Преимущество заключается в том, что он работает для любого типа данных.