Default Formate für Typen Einrichten

Vom Framework her bieten wir für verschiedene Typen Default Formate an. Diese können in der Applikation überschrieben werden.

Default Formate

Einige Formate sind Abhängig von der Culture. Die Basis ist die Implementation in System.Globalization

https://learn.microsoft.com/en-us/dotnet/api/system.globalization

Typ

Format

Beispiel Default für de

Typ

Format

Beispiel Default für de

MetaType.Date

cultureInfo.DateTimeFormat.ShortDatePattern

dd.MM.yyyy

MetaType.DateTime

(cultureInfo.DateTimeFormat.ShortDatePattern + " " + cultureInfo.DateTimeFormat.LongTimePattern)

dd.MM.yyyy HH:mm:ss

MetaType.Time

cultureInfo.DateTimeFormat.LongTimePattern

HH:mm:ss

MetaType.TimeSpan

c

c

MetaType.Decimal

$"#,##0.{new string('0', cultureInfo.NumberFormat.CurrencyDecimalDigits)}"

#,##0.00

MetaType.Double

$"#,##0.{new string('0', cultureInfo.NumberFormat.NumberDecimalDigits)}

#,##0.000

MetaType.TinyInteger

#,##0

(Unabhängig von der Culture)

#,##0

MetaType.SmallInteger

#,##0

(Unabhängig von der Culture)

#,##0

MetaType.Integer

#,##0

(Unabhängig von der Culture)

#,##0

MetaType.LargeInteger

#,##0

(Unabhängig von der Culture)

#,##0

Formate überschreiben

Direkt Ableiteten von MetaTypeDefaultFormat

MetaTypeDefaultFormats stellt die virtuelle Methode GetFormatStringForCulture() zur Verfügung die Überschrieben werden kann.

Interface implementieren

Implementation des Interfaces IMetaTypeDefaultFormats

Beispiel um DateTime und Time ohne Sekunden darzustellen:

public class MyAppMetaTypeDefaultFormats : IMetaTypeDefaultFormats { public MyAppMetaTypeDefaultFormats ([NotNull] MetaTypeDefaultFormats fallbackDefaultFormats) { _fallbackDefaultFormats = fallbackDefaultFormats; } /// <inheritdoc /> public string GetFormatStringForCulture(MetaType metaType, CultureInfo culture) { var result = _fallbackDefaultFormats.GetFormatStringForCulture(metaType, culture); switch (metaType) { case MetaType.Time: case MetaType.DateTime: result = result.Replace(":ss", null); break; } return result; } [NotNull] private readonly MetaTypeDefaultFormats _fallbackDefaultFormats; }

Registration im Startup über die Services möglich

services.AddSingleton<IMetaTypeDefaultFormats, MyAppMetaTypeDefaultFormats>();

Siehe Auch

Mapping von Datentypen