Bonjour,
Je voudrai convertir l'attribut accountExpires (exemple:9223372036854775807), en un format "yyyyMMddHHmmssZ" plus compréhensible.
Est ce que quelqu'un peut m'aider à le faire ? :roll:
Version imprimable
Bonjour,
Je voudrai convertir l'attribut accountExpires (exemple:9223372036854775807), en un format "yyyyMMddHHmmssZ" plus compréhensible.
Est ce que quelqu'un peut m'aider à le faire ? :roll:
Eh bien pour formater une chaine à une date, je t'aurais orienté vers l'utilisation de
SimpleDateFormat avec la fonction parse(). Mais en fait je ne comprends pas ce que ta chaine représente, un délai en ms ? Si oui, il va falloir faire un calcul au départ pour retrouver la date que ça engendre (en partant, par exemple, de Date.getTime() comme base de calcul).
Bonjour,
Merci pour votre réponse,
C'est un attribut qui existe comme tel dans l'Active Directory.
Apparament c'est la durée en 100-nanosecond depuis le 01/01/1601
J'ai trouvé ce code :
ca me génère ceci :Citation:
Long timeStamp = Long.parseLong(time);
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(1601,1,1,0,0);
timeStamp = timeStamp / 10000 + calendar.getTime().getTime();
mais je ne sais pas si c'est correcte :roll:Citation:
Sun Oct 15 03:48:05 CEST 30828
Et je ne sais pas comment continuer ;)
Bonjour,
Je suis arrivé à trouver la solution :D
Pour ceux que ça interessent ;)
Citation:
public static String convert(String time){
Long timeStamp = Long.parseLong(time);
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(1601,0,1,0,0);
timeStamp = timeStamp / 10000 + calendar.getTime().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss'Z'"); // same as timestampOutputFormat
Date result=new Date(timeStamp);
return sdf.format(result);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String m= "129566232000000000";
System.out.println(convert(m));