Simpledateformat similaire à la classe java

Description

SimpleDateFormat similaire à la classe Java.
(http://java.sun.com/j2se/1.5.0/docs/api/index.html?java/text/SimpleDateFormat.html)

Permet de parser ou de formater une date à l'aide d'un pattern.
Langues prises en compte: ca, da, de, en, es, et, fi, fr, is, it, nl, no, pt, sl, sv

Pattern letters:

--------------------------------------------------------------------
| Lettre | Date ou heure .......... | Présentation | Exemples .... |
--------------------------------------------------------------------
| y .... | Year ................... | Year ....... | 1996; 96 .... |
| M .... | Month in year .......... | Month ...... | July; Jul; 07 |
| w .... | Week in year ........... | Number ..... | 27 .......... |
| W .... | Week in month .......... | Number ..... | 2 ........... |
| D .... | Day in year ............ | Number ..... | 189 ......... |
| d .... | Day in month ........... | Number ..... | 10 .......... |
| F .... | Day of week in month ... | Number ..... | 2 ........... |
| E .... | Day in week ............ | Text ....... | Tuesday; Tue. |
| a .... | Am/pm marker ........... | Text ....... | PM .......... |
| H .... | Hour in day (0-23) ..... | Number ..... | 0 ........... |
| k .... | Hour in day (1-24) ..... | Number ..... | 24 .......... |
| K .... | Hour in am/pm (0-11) ... | Number ..... | 0 ........... |
| h .... | Hour in am/pm (1-12) ... | Number ..... | 12 .......... |
| m .... | Minute in hour ......... | Number ..... | 30 .......... |
| s .... | Second in minute ....... | Number ..... | 55 .......... |
| S .... | Millisecond ............ | Number ..... | 978 ......... |
--------------------------------------------------------------------

Exemples:
---------

var sdf = new SimpleDateFormat('dd/MM/yyyy');
var d = sdf.parse('12/2/1952');

var sdf2 = new SimpleDateFormat("'nous sommes le' EEEE dd MMMM yyyy 'et il est' HH:mm:ss");

alert(sdf2.format(d)); // Affiche 'nous sommes le mardi 12 février 1952 et il est 00:00:00';

var sdf3 = new SimpleDateFormat('yy-MMM-dd KK:mm a', 'en');
var d2 = sdf3.parse('78-Dec-2 10:26 pm');

alert(sdf2.format(d2)); // Affiche 'nous sommes le samedi 02 décembre 1978 et il est 22:26:00';

sdf2.setLang('it');
alert(sdf2.format(d2)); // Affiche 'nous sommes le sabato 02 dicembre 1978 et il est 22:26:00';

var d3 = sdf.parse('12/13/2006'); // <=> sdf.parse('12/1/2006'): modulo sur le 13ème mois qui devient le 1er

sdf.setLenient(false); // Les dates invalides retournent une erreur (
var d4 = sdf.parse('12/13/2006'); //Affiche 'ParseException: lenient error...'

Conclusion :


- Les 'pattern letters' G, z et Z n'ont pas étés implémentés (par rapport à la classe Java).
- Vous n'avez pas besoin de préciser la langue lorsque votre pattern ne fait pas intervenir le symbole E ou plus de 2 symboles M (de suite).
- La Langue par défaut est en français. La variable DateFormatSymbols.DEFAULT_LANG permet de la changer.
- Vous pouvez rajouter des langues à la fin du fichier...
- La classe SimpleDateFormat affiche un message d'alerte lorsqu'elle déclenche une exception. Vous pouvez tout aussi bien renvoyer null (par exemple) en remplaçant la ligne 'alert(e.message);' par 'return null;' dans les fonctions parse et format. Peut être pratique lorsque l'on veut savoir si une date est valide avec le lenient à false;

Je met également à dispo une version compacte, sans commentaires.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.