3 votes

Quelle est l'application à appeler pour pouvoir utiliser la date ?

En AppleScript, si vous avez une chaîne de caractères avec une date et que vous essayez de la convertir en une classe de date il s'agit d'une erreur dans le Finder et dans les événements du système. Exemple :

set testDate to "Friday, September 21, 2018 at 6:54:29 PM"
set testResult to date testDate
return testResult

rend :

enter image description here

En plaçant le code ci-dessus dans un événement système :

tell application "System Events"
    set testDate to "Friday, September 21, 2018 at 6:54:29 PM"
    set testResut to date testDate
    return testResut
end tell

les retours :

Une erreur s'est produite dans les événements du système : Impossible d'obtenir la date "Friday, September 21, 2018 à 6:54:29 PM".

J'essaie de placer ce qui précède dans un tell du Finder :

tell application "Finder"
    set testDate to "Friday, September 21, 2018 at 6:54:29 PM"
    set testResut to date testDate
    return testResut
end tell

Le Finder a reçu une erreur : Impossible d'obtenir la date "Friday, S 6:54:29 PM".

Que dois-je utiliser pour pouvoir convertir une chaîne de date en date réelle si j'utilise déjà System Events ou Finder ? La seule alternative que j'ai trouvée est de créer un gestionnaire :

tell application "System Events"
    set testDate to "Friday, September 21, 2018 at 6:54:29 PM"
    return my stringDate(testDate)
end tell
on stringDate(theString)
    set attempt to date theString
    return attempt
end stringDate

Comment puis-je faire un date dans un événement système ou dans un bloc d'information du Finder ?


Il y a eu une discussion dans les commentaires sur les produits fournis. répondre mais compte tenu des spécifications du système de :

MacOS High Sierra version 10.13.6

et la solution copiée :

tell application "System Events"
    set testDate to "Friday, 21 September, 2018 at 6:54:29 PM"
    set testResult to my (date testDate)
end tell

Ouvre un nouvel éditeur script :

enter image description here

Solution de code collé :

enter image description here

Solution de code compilé :

enter image description here

Solution du code d'exécution :

enter image description here

Le problème persiste.

2voto

OnePablo Points 1

C'est intéressant, je n'avais jamais remarqué cette bizarrerie d'AppleScript auparavant. Curieusement, si l'on crée la fonction date en utilisant une chaîne de caractères comme valeur, ni l'objet Événements du système ni Recherche a un problème :

tell application "System Events"
    set testResult to date "Friday, 21 September 2018 at 6:54:29"
end tell

est tout à fait correct (le format de ma chaîne de dates est différent du vôtre, conformément aux paramètres de mon système).

Ce n'est que lorsqu'on fait référence à la valeur de la chaîne à l'aide d'une variable que le problème se pose :

tell application "System Events"
    set testDate to "Friday, 21 September, 2018 at 6:54:29 PM"
    set testResult to date testDate
end tell

comme vous l'avez souligné, est pas autorisé.

Solution :

Il s'avère que la solution consiste à renvoyer le travail à l'objet AppleScript de niveau supérieur à l'aide de la fonction my (ou AppleScript's ) :

tell application "System Events"
    set testDate to "Friday, 21 September, 2018 at 6:54:29 PM"
    set testResult to my (date testDate)
end tell

Note aux autres utilisateurs : Les chaînes de date AppleScript sont formatées en fonction des paramètres de date et d'heure de votre système. Par conséquent, un copier-coller direct de l'un des extraits ci-dessus - que ce soit le mien ou celui de l'OP - peut toujours générer une erreur. Vous devez déterminer le format approprié à utiliser pour la chaîne de date sur votre système, ce qui est plus facile à faire en examinant la valeur renvoyée par la commande AppleScript current date et l'utiliser comme modèle.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X