following AD customization rule will tranformate AD atrtibute lastLogonTimestamp , whenChanged , whenCreated , pwdLastSet to date format dd/mm/yyyy
import java.util.*;
import java.text.*;
import java.time.format.DateTimeFormatter;
import java.time.OffsetDateTime;
import java.io.Serializable;
import java.util.Calendar;
//log.error("------ start timestamp rule -------" );
try{
String ep =object.getAttribute("lastLogonTimestamp");
String wCh =object.getAttribute("whenChanged");
String wCr =object.getAttribute("whenCreated");
String pLs =object.getAttribute("pwdLastSet");
String cn = object.getAttribute("cn");
if (ep !=null ){
Date n=new Date();
Long l;
l = (Long.parseLong(ep)) /10000000L - 11644473600L;
n = new Date();
Date d = new Date(l*1000);
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String formatted = format.format(d);
format.setTimeZone(TimeZone.getTimeZone("Israel"));
//log.error("formatted1" + formatted);
object.setAttribute("lastLogonTimestamp",formatted );
}
if(wCr != null)
{
String whenCreatedStr = wCr;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
Date createdDate = null;
createdDate = sdf.parse(whenCreatedStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(createdDate);
calendar.add(Calendar.HOUR_OF_DAY, 2);
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String formatedDate = sdf1.format(calendar.getTime() );
object.setAttribute("whenCreated",formatedDate);
}
if(wCh != null)
{
String whenCreatedStr = wCh;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
Date changedDate = null;
changedDate = sdf.parse(whenCreatedStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(changedDate);
calendar.add(Calendar.HOUR_OF_DAY, 2);
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
// sdf1.setTimeZone(TimeZone.getTimeZone("Israel"));
String formatedDate = sdf1.format(calendar.getTime() );
object.setAttribute("whenChanged",formatedDate);
}
if (pLs !=null && !(pLs.equals("0"))){
Date n=new Date();
Long l;
l = (Long.parseLong(pLs)) /10000000L - 11644473600L;
n = new Date();
Date d = new Date(l*1000);
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String formatted = format.format(d);
format.setTimeZone(TimeZone.getTimeZone("Israel"));
object.setAttribute("pwdLastSet",formatted );
}
}
catch (Exception e){
return object;
}
return object;