IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Convertir format dateTime en String


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Convertir format dateTime en String
    Bonjour,

    J'aimerais faire avoir une condition, "SI on est ce jour de la semaine ALORS ceci s'exécute"

    Mais impossible de parser un format dateTime... Voici les détails:

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    > $date = get-date
    > $date.getType()
     
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     DateTime                                 System.ValueType
     
     
    > $date -match 'samedi'
    False
    > $test = 'samedi dimanche'
    > $test -match 'samedi'
    True

    Ainsi l'opérateur -match ne trouve pas la valeur 'samedi'
    J'ai essayé de formater la chaîne manuellement mais l'information que je souhaite est encodée:

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > $DateStr = $date.ToString()
    > $DateStr.getType()
     
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     String                                   System.Object
     
     
    > $DateStr
    01/12/2018 13:08:01

    Ainsi quand je formate je n'ai plus ma chaîne de caractères..
    Savez-vous comment faire ?

    Merci

  2. #2
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    tu peux utiliser le membre DayOfWeek

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PS C:\Users\walid> $date = get-date
    PS C:\Users\walid> $date.DayOfWeek
    Sunday
    PS C:\Users\walid> $date.DayOfWeek -eq 'sunday'
    True

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    je me permets un complément, d'après ceci :
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $date = get-date
     
    $Date.DayOfWeek
    #Wednesday
     
    $culture = [System.Globalization.CultureInfo]("fr-Fr")
     
    $culture.DateTimeFormat.GetDayName($Date.DayOfWeek)
    #mercredi
    A voir également ce projet.

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Il eût été dommage de s'arrêter au milieu du gué :
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $date='mercredi 5 décembre 2018 20:21:10' -as [DateTime]
     
    $Date.DayOfWeek
     
    Add-Member -Force -InputObject $Date -MemberType ScriptProperty -name DayOfWeek -value { 
     $culture = [System.Globalization.CultureInfo]("fr-Fr");
     $culture.DateTimeFormat.GetDayName($this.PsBase.DayOfWeek) #L'usage de PSbase évite un appel récursif. On pointe sur l'objet dotNet et pas sur le PSObject
    }
     
    $Date.DayOfWeek -Match 'Mercredi'
    #true
     
    $Date=$date.AddDays(1)
    $Date.DayOfWeek -Match 'Mercredi'
    #false
    $Date.DayOfWeek
    #Thursday
    #ici le membre ETS n'existe plus, car Add-Member modifie une instance d'objet et pas toutes les instances du type Datetime...
    #cf. Update-DataType

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo