Groovy UTC le formatage de la date
Ok, donc je suis en train de faire un simple UTC le formatage de la date de script qui prend l'UTC et le convertit dans un format spécifique pour la date et l'heure. Je peux obtenir le script fonctionne bien en javascript, mais le plugin que j'utilise exige Groovy apparemment. Je ne suis pas familier avec elle, j'ai dit que la programmation est essentiellement le même, car il peut utiliser des bibliothèques javascript/langue. En tout cas, voici mon extrait de code:
import java.util.*;
var d = new Date();
var CurrentDay = ('0' + d.getUTCDate()).slice(-2);
var CurrentMonth = ('0' + d.getUTCMonth()).slice(-2);
var CurrentYear = d.getUTCFullYear();
var CurrentHours = ('0' + d.getUTCHours()).slice(-2);
var CurrentMinutes = ('0' + d.getUTCMinutes()).slice(-2);
var CurrentSeconds = ('0' + d.getUTCSeconds()).slice(-2);
var DateFormatted = CurrentYear.toString() + CurrentMonth.toString() + CurrentDay.toString() + CurrentHours.toString() + CurrentMinutes.toString() + CurrentSeconds.toString();
return DateFormatted;
Je reçois ce message d'erreur lorsque je tente de lancer mon script:
groovy.lang.MissingMethodException: No signature of method: Script1.var() is applicable for argument types: (java.util.Date) values: [Thu Jun 06 21:18:43 CDT 2013]
Possible solutions: wait(), run(), run(), every(), any(), wait(long)
Parameters:
{}
Toute aide serait grandement appréciée. Aussi, je peux obtenir l'exécution de ce script exactement comme je voudrais que javascript normale.
Celui qui a dit que vous Groovy et Javascript ont la même syntaxe est faux... C'est 95% compatible avec JAVA, pas de Javascript.
Pourquoi la balise JavaScript? Savez-vous que JavaScript a rien à voir avec Java? javascriptisnotjava.io
J'avais déjà accepté une Réponse à cette question, plus de quatre ans. merci pour l'entrée.
Beaucoup de choses ont changé en quatre ans, concernant la date du temps de travail sur la plate-forme Java.
OriginalL'auteur Cornelius Qualley | 2013-06-07
Vous devez vous connecter pour publier un commentaire.
L'équivalent de
var
à partir de JavaScript est "def" en Groovy. De plus, la mise en place d'un format de date est plus facile en Groovy, à l'aide de Groovy Date:Vous pouvez modifier le format en fonction de votre besoin. Pour les formats disponibles, reportez-vous SimpleDateFormat.
Celui-ci obtient les champs de date de commande. Essayez aaaa-MM-jj au lieu de jj/MM/aaaa
Le
X
espace réservé doit être préférée à l'littérale'Z'
dans la chaîne de format si vous utilisez Java7+Pour info, ces gênants vieille date-heure classes sont maintenant héritage, supplanté par le java.les classes de temps.
Ce format devrait fonctionner: aaaa-MM-jj PAS'HH:mm:ssX
OriginalL'auteur dmahapatro
tl;dr
La syntaxe Java ici, mais vous pouvez l'appeler java.les classes de temps en Groovy, trop.
Éviter les classes héritées
La Question et d'autres Réponses utilisez gênants vieille date-heure classes qui sont maintenant héritage, supplanté par le java.les classes de temps.
À l'aide de java.temps
Apparemment, vous voulez générer une Chaîne de caractères en standard ISO 8601 format représentant une date-valeur de temps en UTC fuseau horaire.
La
java.temps.Instantané
classe représente un moment dans le scénario de l'UTC avec une résolution de nanosecondes.La java.les classes de temps d'utilisation de l'ISO 8691 formats par défaut lors de l'analyse/génération de chaînes.
Si vous voulez en secondes, sans fraction, tronquer.
Fait.
OriginalL'auteur Basil Bourque
Vous devriez ne jamais modifier le fuseau horaire par défaut pour votre avantages pour les locaux, qui affecte tout le code dans la JVM - il peut vouloir l'heure locale réelle de la zone par défaut, par exemple. Ainsi, en utilisant le Fuseau horaire.setDefault() est une mauvaise pratique, sauf si vous êtes sûr que toutes vos code voulez que le fuseau horaire et que tout le code est le vôtre et que cela ne changera jamais. C'est beaucoup demander.
Au lieu de cela vous devez explicitement spécifier le fuseau horaire de l'intérêt pour vos appels.
Si vous souhaitez utiliser un format de date/heure spécifique pour les paramètres régionaux de l'utilisateur/machine, vous devez utiliser le DateFormat usine, plus précisément l'une des méthodes statiques suivantes - ils prendront soin de complexes régionaux de la langue/détails pas possible d'utiliser toute autre approche (y compris SimpleDateFormatter):
getDateTimeInstance() - pour les paramètres régionaux par défaut et les styles par défaut.
Une fois que vous obtenez ce que DateFormatter exemple, vous voulez appeler la setTimeZone(Fuseau horaire.getTimeZone('UTC')) sur elle. Ce formateur est d'utiliser le fuseau horaire. Vous pouvez également utiliser toute autre fuseau horaire.
Enfin, vous pourrez appeler le dateFormat.format(Date à date) méthode pour obtenir une représentation de Chaîne de cette date, dans la langue, le style et le fuseau horaire de votre choix.
Si vous ne voulez PAS de paramètres régionaux de format spécifique, mais souhaitez fixer à quelque chose de vos propres, telles que l'ISO, au lieu de créer de la DateFormat exemple à l'aide d'un statique usine méthode décrite ci-dessus, vous pourrez utiliser les SimpleDateFormat à la place. Plus précisément, vous pourrez utiliser la new SimpleDateFormat(String pattern) constructeur. Le modèle sera après les définitions dans le SimpleDateFormat JavaDoc, et pourrait être 'yyyy-MM-dd HH:mm:ss.SSS", par exemple.
Vous appelez ensuite la setTimeZone() méthode qui SimpleDateFormat instance de la même façon que pour (tout) DateFormat. En Groovy, vous pouvez ignorer l'explicite SimpleDateFormat création et à la place, vous pouvez utiliser le Groovy Date d'amélioration, de son format(String format, Fuseau horaire tz) de la méthode, il va faire la SimpleDateFormat trucs sous les couvertures.
Paramètres régionaux de format spécifique de l'approche de l'exemple (Java et/ou Groovy):
Format fixe l'approche de l'exemple (Java et/ou Groovy):
Format fixe exemple (Groovy):
Oui, c'est très vrai. Mais c'est un héritage question, spécifiques à un héritage de classe et les classes sont encore largement utilisés (esp. quand il n'y a pas de choix en raison d'autres bibliothèques utilisées). ils sont souvent utilisés de manière incorrecte. Donc je me suis senti obligé de répondre dans ce domaine.
OriginalL'auteur Learner