Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

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

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>();

  • No labels