Datumsformatierung in FileMaker

Die Bedeutung der Lokalisierung


1. Oktober 2020In Filemaker BeispieleBy Karsten Risseeuw5 Minutes

Die Lokal-Information in jeder FileMaker-Datei

Datumsangaben in Europa und beispielsweise in den Staaten sind unterschiedlich.

Die Angabe «01.10.2020» wird in Europa als «1. Oktober 2020» interpretiert,
jedoch in den Staaten als «10. Januar 2020».

Damit FileMaker weiss, wie es eine Datumsangabe verstehen soll, wird beim Anlegen einer Datei die lokale Information als fixe Angabe in der Datei verankert. Das ermöglicht einerseits eine Interpretation des Datums, aber sollte sich die Datei später einmal auf einem anderen Betriebssystem öffnen, kann FileMaker neue Datumseingaben abgleichen (zwischen Systemeinstellungen und die in der Datei verankerten Information). Damit wird die Integrität verschiedener Datumseingaben gewährleistet.

Weil es weltweit verschiedene Interpretationen von Datums- und Zeitangaben gibt, verwaltet das Betriebssystem verschiedene Möglichkeiten. FileMaker setzt die Systemeinstellungen der Formatierung (die Lokal-Information) in die Datei, sobald sie erstellt wird.

Regionale Einstellungen

FileMaker setzt einen Fixpunkt für die Interpretation des Datums, und dieser Fixpunkt (oder Lokal-Information) ändert sich nicht, wenn die Datei auf einem System mit anderen Datumsformatierungen aufgemacht wird. Intern bleibt der Fixpunkt bestehen, auch wenn ein Datum aufgrund eines anderen Betriebssystems anders eingegeben wird.

Beispiel
Wird eine FileMaker-Datei in Europa angelegt, dann aber in den USA geöffnet, gibt es folgende Situation: Intern in der Datei wurde die Datumsinterpretation auf das europäische TAG/MONAT/JAHR eingestellt. Beim Anwender in den USA sind die Systemeinstellungen jedoch MONAT/TAG/JAHR. In Datumsfeldern ist das kein Problem – FileMaker kann die Darstellung (!) anpassen. Intern jedoch bleibt die europäische Struktur erhalten. Dies kann zu Problemen führen.

Datumsberechnungen sind unberechenbar

Probleme gibt es bei Datumsberechnungen, wenn die Einstellungen der Datei anders sind als die des Benutzers. Als Download werden hier zwei Beispieldateien mitgeliefert: Es ist dieselbe Datei, jedoch einmal als Datei mit europäischer Referenz und einmal als Datei mit amerikanischer Referenz. Öffnet man eine Datei, dann passiert folgendes:

Wenn man die Datei öffnet die nicht zu den eigenen Systemeinstellungen gehört, passiert folgendes: Datumsangaben nach Textfeldern geschrieben erhalten die Datei-interne Formatierung (die falsch ist). Probleme gibt es auch bei Datumsberechnungen. Am besten sieht man das, wenn man beide Dateien parallel öffnet.

In diesem Beispiel: Das System läuft mit EU-Einstellungen. Die EU-Datei ist OK.

In diesem Beispiel: Das System läuft mit EU-Einstellungen. Die Datei jedoch wurde mit amerikanischen Einstellungen erstellt. Jetzt sind die Datumsberechnungen nicht mehr OK.

Neutrale Speicherung von Datumsangaben

Ein Datum lässt sich nicht nur als «Datum» abspeichern, sondern auch als «Datumsnummer». FileMaker zählt die Tage ab dem 1. Januar vom Jahr 0001. Jedes Datum seitdem lässt sich deshalb als Nummer darstellen. Diese Nummer ist von keiner Formatierung abhängig. Das Datum lässt sich so als Nummern definieren:

LiesAlsZahl ( [DATUM] )

Damit man diese Zahl wieder zum Datum zurückwandeln kann, gilt:

LiesAlsDatum ( [ZAHL] )

Mit diesen zwei Angaben lassen sich also Datumsangaben neutral speichern, oder als Zahl von einer Datei in die nächste transferieren. Bei der Rückwandlung zu einem Datum gelten dann die Datumseinstellungen dieser Datei wo sie interpretiert wird.

Beispiel
Der 1. Oktober 2020 hat die Zahl «737699». In einer europäischen Datei wird sie zu «01.10.2020» umgewandelt, während die Umwandlung in einer amerikanischen Datei zu «10.01.2020» erfolgt.

Entfernung der lokalen Information

Die lokale Information, die FileMaker beim Erstellen einer Datei speichert, kann nicht abgeändert werden. Es gibt lediglich eine Methode, die Datei wieder «zurückzusetzen», nämlich, indem man ein leerer Klon der Datei erstellt.

In der Beispieldatei gibt es einen Knopf, womit ein solcher Klon sehr einfach erstellt werden kann. Die Lokalinformation der Datei wird beim Öffnen neu gesetzt und ist deshalb abhängig vom jeweiligen System, das der Benutzer verwendet. Mit der Klon-Funktion lässt sich das Verhalten in verschiedenen Systemumgebungen relativ leicht testen.

Datum neutral programmieren

Keine FileMaker-Datei ist heute neutral hinsichtlich der Datumsverarbeitung. Mann kann sich aber überlegen, ob man eine neutrale Entwicklung neuer Lösungen anstreben sollte (mithilfe der Datumsnummer).

Neue Funktionen ab FileMaker Pro 19.1

Claris hat in der letzten Version zwei wichtige Funktionen hinzugefügt:

  • Get ( SystemLocaleElements)
  • Get ( FileLocaleElements )

Mit diesen zwei Funktionen erhält man jeweils eine komplette Übersicht aller Einstellungen, schön verpackt in JSON – einmal vom System und einmal von der Datei. Daraus lassen sich beispielsweise die aktuellen Daten aus dem System auslesen und diese für Rückmeldungen, Formatierungen oder anderes verwenden.

Es geht um Systemeinstellungen und Dateieinstellungen. Aussen vor bleiben selbstverständlich programmierte Eigenheiten, wie Spracheinstellungen einer mehrsprachigen Lösung.

Beispieldatei herunterladen