2017-05-02 1 views
1

je la chaîne de date suivante:ColdFusion - date et le formatage du temps est arrondi à 5 minutes

2017-05-02 08:00:00.0 

Lorsque je demande DateTimeFormat() comme:

#datetimeformat(item.getValue('releasedate'), 'h:mm a')# 

Il est arrondi de 5 minutes et sortie: 08h05. Dans le code ci-dessus, 'releasedate' est la chaîne qui est passée.

Comment résoudre ce problème?

+3

Personne n'arrondit rien ici; vous publiez le mois ici au lieu des minutes. https://cfdocs.org/datetimeformat – CBroe

+0

@CBroe vous devriez ajouter cela comme une réponse à cette question. –

Répondre

13

Personne n'arrondit rien. Vous publiez le mois ici au lieu des minutes, et le mois arrive à être en mai, donc c'est 05 avec zéro principal.

https://cfdocs.org/datetimeformat:

mm: Mois sous forme de chiffres; zéro pour les mois à un seul chiffre.

minutes ne sont pas mm, mais

nn: minutes; un zéro non significatif pour les minutes à un chiffre

+1

@JesseEarley - Vous pensiez probablement à timeFormat(), qui autorise à la fois 'm' et' n' pour "hour". Bien mieux de rester avec «n», moins ambigu. – Leigh

+0

Le masquage des dates est une énorme bête de ma part. Cela peut être quelque peu incohérent dans ce qui ressort de l'arrière-plan. Lettre cas peut importer, comme vous venez de le rencontrer. Portez une attention particulière si vous utilisez ColdFusion avec quelque chose comme moment.js. Pour un vrai plaisir, essayez la différence entre «YYYY» et «yyyy». Alors essayez-le pour le 29 décembre. – Shawn

+1

@Shawn - Il ne fait que suivre les [règles java] (https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html). Personnellement, je les trouve plus compréhensibles (et flexibles :). De plus, contrairement aux docs des FC, les javadocs ont * beaucoup * d'exemples pour faciliter la recherche. J'aurais aimé qu'ils utilisent les règles du java complet dès le départ. – Leigh