Skip to content

$string.format

Description

Formatage de valeur. Différents mécanismes de formatage sont appliqués selon le type de la donnée en entrée. La liste ci-dessous donne une correspondance entre le type de valeur et le système de formatage appliqué. Si défini, le pattern doit utiliser une syntaxe conforme du système de formatage.

Type Formatter
DATE SimpleDateFormat
TIME DateTimeFormatter
TIMESTAMP SimpleDateFormat
Autre type numérique DecimalFormat

La méthode $cal.format permet également de formater une date, une heure ou un timestamp à l'aide d'une syntaxe plus simple.

Syntaxe

$string.format( value , formatting )

Paramètres

value string
Valeur à formater
formatting map

Règles de formatage. L'objet doit être un map avec les éléments suivants:

pattern
Pattern de formatage
type
Type de donnée à traiter. Les types sont les mêmes que ceux définis dans les règles de formatage de la descript (DATE, TIME, TIMESTAMP, INTEGER, INT, SMALLINT, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL). Le type est optionnel mais nettement recommandé pour éviter les mauvaises interprétations de valeur et pour des questions de performances: s'il n'est pas indiqué, la méthode effectuera des essais de conversion en entier et en double pour déterminer le type. Ces tentatives de conversion peuvent être coûteuses en termes de performances.
mode

Mode de formatage. Ne concerne que les types représentant une valeur numérique.

Actuellement seule la valeur "percent" est prise en compte et indique que la valeur est à représenter en pourcents. Notez que le fait d'indiquer un préfixe ou un suffixe % sur le pattern entraine automatiquement la conversion en pourcent (voir DecimalFormat)

locale
Optionnel, locale à prendre en compte. La locale est à spécifier selon la syntaxe IETF BCP 47, par exemple "fr", fr-CH", "en-US", etc.
decimalSeparator string
Séparateur de décimale à utiliser dans les nombres. Si non défini, le moteur se rabat sur le séparateur défini au niveau de la config de l'application ou, à défaut, sur le séparateur par défaut associé à la locale.
groupingSeparator string
Séparateur de milliers à utiliser dans les nombres. Si non défini, le moteur se rabat sur le séparateur défini au niveau de la config de l'application ou, à défaut, sur le séparateur par défaut associé à la locale.

Retour

Valeur formatée

Exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$str.format(-54321, { type: "FLOAT", pattern: "#0.00" });
// -54321.00

$str.format($cal.time(), { type: "TIME", pattern: "H' heures 'mm" });
// 19 heures 57

$str.format(#timestamp, { type: "TIMESTAMP", pattern: "dd/MM/yyyy HH:mm:ss" });
// 06/02/2024 19:57:06

$str.format(margeVenteEchange, { type: "FLOAT", pattern: "0", mode: "percent" }) & "%"
// 13%

$str.format(1234.56, { type: "DECIMAL", pattern: "#,##0.00", locale: "fr-ch" });
// 1'234.56