Résolu Respect du Séparateur et de la date en FR

Plus d'informations
il y a 11 mois 3 semaines - il y a 11 mois 3 semaines #33406 par Le CHENADEC
Bonjour,
je me retrouve souvent confronté aux problèmes de format de date ou de nombre
lié au respect de la définition de la culture Utilisée.
Mais je m'apperçois également qu'en fonction de la syntaxe que j'utilise sur certaine commande
cela change le format utilisé.

Exemple Ici avec Write-Host et Add-Content
ou en fonction de la Syntaxe mes nombres ont comme séparateur la , ou le point
Idem pour la date qui peut être en FR ou repasser en US.

cls
Write-Host $(Get-Culture)

$Fic_Test = 'C:\Temp\test.txt'
Set-Content -Path $Fic_Test -Value "FICHIER DE TEST" -Encoding UTF8

# NOMBRE - Division
$A = 10
$B = 3
$C = $A/$B
$D = [math]::Round($C,2)
Write-Host $C
Write-Host $D
Write-host "$C <-> $D"
Write-host $C '<->' $D

Add-Content -Path $Fic_Test -Value $C
Add-Content -Path $Fic_Test -Value $D
Add-Content -Path $Fic_Test -Value "$C <-> $D"

# Date
$DateJour = Get-Date
Write-Host $DateJour
Write-Host "Date du Jour : $DateJour"
Add-Content -Path $Fic_Test -Value $DateJour
Add-Content -Path $Fic_Test -Value "Date du Jour : $DateJour"


Si vous avez une idée pour s'assurer que quelque soit la commande utilisée
les nombres et les date ne change pas de Format

Cdt,

 
Dernière édition: il y a 11 mois 3 semaines par Le CHENADEC. Raison: Ajout d'une PJ

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 3 semaines #33408 par Arnaud Petitjean
Bonjour, 

Tout d'abord sois le bienvenu dans le forum. N'hésites pas à prendre quelques instants pour te présenter dans le forum adéquat, c'est toujours plus sympa pour faire connaissance  .

Alors concernant le formatage des dates, ce que je fais toujours et que je te suggère de faire également c'est d'utiliser la commande Get-Date avec le paramètre -Format. Si tu ne l'as pas lue, je te conseille de lire l'aide de Get-Date. Tu y apprendras énormément de choses concernant la manipulation et le formatage des dates.

Attention, avec le paramètre -Format l'objet retourné par Get-Date ne sera plus une Date mais un String. Donc à n'utiliser qu'à la fin pour stocker la date dans un fichier ou pour l'afficher.

Voici un petit exemple pour bien comprendre : 
PS > Get-Date -Format 'yyyy-MM-dd#HHmmss'

2023-10-06#111140

Dans cet exemple j'ai utilisé des tirets et un dièse pour séparer les différents éléments de ma date mais tu peux y mettre ceux de ton choix.

Concernant ton deuxième souci de formatage des nombres dépendant de la culture de ton OS, je te suggère de consulter cet article et on en reparle : stackoverflow.com/questions/2379514/powe...s-in-another-culture

En espérant que ça t'aide.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 3 semaines #33410 par Le CHENADEC
Merci,
pour cette réponse,
mais c'est toujours trompeur qu'en fonction de la commande utilisée,
de voir la date changer de format.

J'ai réussi à contourner mon problème qui consiste
à écrire dans un Csv une date de début et une variable calculée,
qui me donne un nombre a virgule, d'où la gestion du séparateur.

D'une écriture direct en Csv via
Add-content -Path $MonFichier -Value "$VarDate;$VarNum"

je suis passé par une collection d'Objet
puis un Export dans un Fichier Csv
$Coll_Compteur | Export-Csv -Path $FIC_Rpt -Encoding UTF8 -Delimiter ';' -NoTypeInformation

Et là, mon format Date est en FR et ma valeur calculée est bien en séparateur Fr avec une virgule

Cdt,

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 3 semaines #33413 par Arnaud Petitjean

...c'est toujours trompeur qu'en fonction de la commande utilisée, de voir la date changer de format.


C'est comme ça que fonctionne PowerShell... Car il te retourne un objet Date et il se débrouille pour te l'afficher du mieux qu'il peut. Il pourrait nous obliger à le faire, ce qui serait galère !

C'est la raison pour laquelle il est toujours mieux d'exporter soi-même la date au bon format comme je te l'expliquais. Ainsi, finies les surprises liées à la culture de ton OS !

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.102 secondes
Propulsé par Kunena