Namespace
Usage
Apex supports both implicit and explicit casting of Date values to Datetime, with the time component being zeroed out in the resulting Datetime value. For more information about the Datetime, see Datetime Data Type.
Datetime Methods
The following are methods for Datetime.
addDays(additionalDays)
Signature
public Datetime addDays(Integer additionalDays)
Parameters
- additionalDays: Type: Integer
Return Value
Type: Datetime
Example
Datetime myDateTime = Datetime.newInstance(1960, 2, 17); Datetime newDateTime = myDateTime.addDays(2); Datetime expected = Datetime.newInstance(1960, 2, 19); Assert.areEqual(expected, newDateTime);
addHours(additionalHours)
Signature
public Datetime addHours(Integer additionalHours)
Parameters
- additionalHours: Type: Integer
Return Value
Type: Datetime
Example
DateTime myDateTime = DateTime.newInstance(1997, 1, 31, 7, 8, 16); DateTime newDateTime = myDateTime.addHours(3); DateTime expected = DateTime.newInstance(1997, 1, 31, 10, 8, 16); Assert.areEqual(expected, newDateTime);
addMinutes(additionalMinutes)
Signature
public Datetime addMinutes(Integer additionalMinutes)
Parameters
- additionalMinutes: Type: Integer
Return Value
Type: Datetime
Example
DateTime myDateTime = DateTime.newInstance(1999, 2, 11, 8, 6, 16); DateTime newDateTime = myDateTime.addMinutes(7); DateTime expected = DateTime.newInstance(1999, 2, 11, 8, 13, 16); Assert.areEqual(expected, newDateTime);
addMonths(additionalMonths)
Signature
public Datetime addMonths(Integer additionalMonths)
Parameters
- additionalMonths: Type: Integer
Return Value
Type: Datetime
Example
DateTime myDateTime = DateTime.newInstance(2000, 7, 7, 7, 8, 12); DateTime newDateTime = myDateTime.addMonths(1); DateTime expected = DateTime.newInstance(2000, 8, 7, 7, 8, 12); Assert.areEqual(expected, newDateTime);
addSeconds(additionalSeconds)
Signature
public Datetime addSeconds(Integer additionalSeconds)
Parameters
- additionalSeconds: Type: Integer
Return Value
Type: Datetime
Example
DateTime myDateTime = DateTime.newInstance(2001, 7, 19, 10, 7, 12); DateTime newDateTime = myDateTime.addSeconds(4); DateTime expected = DateTime.newInstance(2001, 7, 19, 10, 7, 16); Assert.areEqual(expected, newDateTime);
addYears(additionalYears)
Signature
public Datetime addYears(Integer additionalYears)
Parameters
- additionalYears: Type: Integer
Return Value
Type: Datetime
Example
DateTime myDateTime = DateTime.newInstance(2009, 12, 17, 13, 6, 6); DateTime newDateTime = myDateTime.addYears(1); DateTime expected = DateTime.newInstance(2010, 12, 17, 13, 6, 6); Assert.areEqual(expected, newDateTime);
date()
Signature
public Date date()
Return Value
Type: Date
Example
DateTime myDateTime = DateTime.newInstance(2006, 3, 16, 12, 6, 13); Date myDate = myDateTime.date(); Date expected = Date.newInstance(2006, 3, 16); Assert.areEqual(expected, myDate);
dateGMT()
Signature
public Date dateGMT()
Return Value
Type: Date
Example
// California local time, PST DateTime myDateTime = DateTime.newInstance(2006, 3, 16, 23, 0, 0); Date myDate = myDateTime.dateGMT(); Date expected = Date.newInstance(2006, 3, 17); Assert.areEqual(expected, myDate);
day()
Signature
public Integer day()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.newInstance(1986, 2, 21, 23, 0, 0); Assert.areEqual(21, myDateTime.day());
dayGmt()
Signature
public Integer dayGmt()
Return Value
Type: Integer
Example
// California local time, PST
DateTime myDateTime = DateTime.newInstance(1987, 1, 14, 23, 0, 3);
Assert.areEqual(15, myDateTime.dayGMT());
dayOfYear()
Signature
public Integer dayOfYear()
Return Value
Type: Integer
Example
For example, February 5, 2008 08:30:12 would be day 36.
Datetime myDate = Datetime.newInstance(2008, 2, 5, 8, 30, 12); Assert.areEqual(36, myDate.dayOfYear());
dayOfYearGmt()
Signature
public Integer dayOfYearGmt()
Return Value
Type: Integer
Example
// This sample assumes we are in the PST timezone DateTime myDateTime = DateTime.newInstance(1999, 2, 5, 23, 0, 3); // January has 31 days + 5 days in February = 36 days // dayOfYearGmt() adjusts the time zone from the current time zone to GMT // by adding 8 hours to the PST time zone, so it's 37 days and not 36 days Assert.areEqual(37, myDateTime.dayOfYearGmt());
format()
Signature
public String format()
Return Value
Type: String
Example
DateTime.myDateTime = DateTime.newInstance(1993, 6, 6, 3, 3, 3);
Assert.areEqual('6/6/1993, 3:03 AM', mydatetime.format());
format(dateFormatString)
Signature
public String format(String dateFormatString)
Parameters
- dateFormatString: Type: String
Return Value
Type: String
Usage
For more information on the Java simple date format, see Java SimpleDateFormat.
Example
Datetime myDT = DateTime.newInstance(2022, 5, 4, 19, 37, 55); String myDate = myDT.format('yyyy-MM-dd h:mm a'); String expected = '2022-05-04 7:37 PM'; Assert.areEqual(expected, myDate);
format(dateFormatString, timezone)
Signature
public String format(String dateFormatString, String timezone)
Parameters
- dateFormatString: Type: String
- timezone: Type: String Valid time zone values for the timezone argument are the time zones of the Java TimeZone class that correspond to the time zones returned by the TimeZone.getAvailableIDs method in Java. We recommend you use full time zone names, not the three-letter abbreviations.
Return Value
Type: String
Usage
For more information on the Java simple date format, see Java SimpleDateFormat.
Example
Datetime GMTDate = Datetime.newInstanceGmt(2011,6,1,12,1,5); String strConvertedDate = GMTDate.format('MM/dd/yyyy HH:mm:ss', 'America/New_York'); // Date is converted to // the new time zone and is adjusted // for daylight saving time. Assert.areEqual( '06/01/2011 08:01:05', strConvertedDate);
formatGmt(dateFormatString)
Signature
public String formatGmt(String dateFormatString)
Parameters
- dateFormatString: Type: String
Return Value
Type: String
Usage
For more information on the Java simple date format, see Java SimpleDateFormat.
Example
DateTime myDateTime = DateTime.newInstance(1993, 6, 6, 3, 3, 3); String formatted = myDateTime.formatGMT('EEE, MMM d yyyy HH:mm:ss'); String expected = 'Sun, Jun 6 1993 10:03:03'; Assert.areEqual(expected, formatted);
formatLong()
Signature
public String formatLong()
Return Value
Type: String
Example
// Passing local date based on the PST time zone Datetime dt = DateTime.newInstance(2012,12,28,10,0,0); // Writes 12/28/2012 10:00:00 AM PST System.debug('dt.formatLong()=' + dt.formatLong());
getTime()
Signature
public Long getTime()
Return Value
Type: Long
Example
DateTime dt = DateTime.newInstanceGMT(2007, 6, 23, 3, 3, 3); Long gettime = dt.getTime(); Long expected = 1182567783000L; Assert.areEqual(expected, gettime);
hour()
Signature
public Integer hour()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.newInstance(1998, 11, 21, 3, 3, 3); Assert.areEqual(3 , myDateTime.hour());
hourGmt()
Signature
public Integer hourGmt()
Return Value
Type: Integer
Example
// California local time
DateTime myDateTime = DateTime.newInstance(2000, 4, 27, 3, 3, 3);
Assert.areEqual(10 , myDateTime.hourGMT());
isSameDay(dateToCompare)
Signature
public Boolean isSameDay(Datetime dateToCompare)
Parameters
- dateToCompare: Type: Datetime
Return Value
Type: Boolean
Example
datetime myDate = datetime.now();
datetime dueDate =
datetime.newInstance(2008, 1, 30);
boolean dueNow = myDate.isSameDay(dueDate);
millisecond()
Signature
public Integer millisecond()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.now(); system.debug(myDateTime.millisecond());
millisecondGmt()
Signature
public Integer millisecondGmt()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.now(); system.debug(myDateTime.millisecondGMT());
minute()
Signature
public Integer minute()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.newInstance(2001, 2, 27, 3, 3, 3); Assert.areEqual(3, myDateTime.minute());
minuteGmt()
Signature
public Integer minuteGmt()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.newInstance(2002, 12, 3, 3, 3, 3); Assert.areEqual(3, myDateTime.minuteGMT());
month()
Signature
public Integer month()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.newInstance(2004, 11, 4, 3, 3, 3); Assert.areEqual(11, myDateTime.month());
monthGmt()
Signature
public Integer monthGmt()
Return Value
Type: Integer
Example
DateTime myDateTime = DateTime.newInstance(2006, 11, 19, 3, 3, 3); Assert.areEqual(11, myDateTime.monthGMT());
newInstance(milliseconds)
Signature
public static Datetime newInstance(Long milliseconds)
Parameters
- milliseconds: Type: Long
Example
Long longtime = 1341828183000L;
DateTime dt = DateTime.newInstance(longtime);
DateTime expected = DateTime.newInstance(2012, 7, 09, 3, 3, 3);
Assert.areEqual(expected, dt);
newInstance(date, time)
Signature
public static Datetime newInstance(Date date, Time time)
Example
Date myDate = Date.newInstance(2011, 11, 18); Time myTime = Time.newInstance(3, 3, 3, 0); DateTime dt = DateTime.newInstance(myDate, myTime); DateTime expected = DateTime.newInstance(2011, 11, 18, 3, 3, 3); Assert.areEqual(expected, dt);
newInstance(year, month, day)
Signature
public static Datetime newInstance(Integer year, Integer month, Integer day)
Example
datetime myDate = datetime.newInstance(2008, 12, 1);
newInstance(year, month, day, hour, minute, second)
Signature
public static Datetime newInstance(Integer year, Integer month, Integer day, Integer hour, Integer minute, Integer second)
Parameters
Example
Datetime myDate = Datetime.newInstance(2008, 12, 1, 12, 30, 2);
newInstanceGmt(date, time)
Signature
public static Datetime newInstanceGmt(Date date, Time time)
Return Value
Type: Datetime
Example
Date myDate = Date.newInstance(2013, 11, 12); Time myTime = Time.newInstance(3, 3, 3, 0); DateTime dt = DateTime.newInstanceGMT(myDate, myTime); DateTime expected = DateTime.newInstanceGMT(2013, 11, 12, 3, 3, 3); Assert.areEqual(expected, dt);
newInstanceGmt(year, month, date)
Signature
public static Datetime newInstanceGmt(Integer year, Integer month, Integer date)
Return Value
Type: Datetime
Example
DateTime dt = DateTime.newInstanceGMT(1996, 3, 22);
newInstanceGmt(year, month, date, hour, minute, second)
Signature
public static Datetime newInstanceGmt(Integer year, Integer month, Integer date, Integer hour, Integer minute, Integer second)
Parameters
Return Value
Type: Datetime
Example
//California local time
DateTime dt = DateTime.newInstanceGMT(1998, 1, 29, 2, 2, 3);
DateTime expected = DateTime.newInstance(1998, 1, 28, 18, 2, 3);
Assert.areEqual(expected, dt);
now()
Signature
public static Datetime now()
Example
datetime myDateTime = datetime.now();
parse(datetimeString)
Signature
public static Datetime parse(String datetimeString)
Parameters
- datetimeString: Type: String
Example
Datetime dt = DateTime.parse('10/14/2011, 11:46 AM'); String myDtString = dt.format(); Assert.areEqual('10/14/2011, 11:46 AM', myDtString);
second()
Signature
public Integer second()
Return Value
Type: Integer
Example
DateTime dt = DateTime.newInstanceGMT(1999, 9, 22, 3, 1, 2); Assert.areEqual(2, dt.second());
secondGmt()
Signature
public Integer secondGmt()
Return Value
Type: Integer
Example
DateTime dt = DateTime.newInstance(2000, 2, 3, 3, 1, 5); Assert.areEqual(5, dt.secondGMT());
time()
Signature
public Time time()
Return Value
Type: Time
Example
DateTime dt = DateTime.newInstance(2002, 11, 21, 0, 2, 2); Time expected = Time.newInstance(0, 2, 2, 0); Assert.areEqual(expected, dt.time());
timeGmt()
Signature
public Time timeGmt()
Return Value
Type: Time
Example
// This sample is based on the PST time zone DateTime dt = DateTime.newInstance(2004, 1, 27, 4, 1, 2); Time expected = Time.newInstance(12, 1, 2, 0); // 8 hours are added to the time to convert it from // PST to GMT Assert.areEqual(expected, dt.timeGMT());
valueOf(dateTimeString)
Signature
public static Datetime valueOf(String dateTimeString)
Parameters
- dateTimeString: Type: String
Usage
The specified string should use the standard date format “yyyy-MM-dd HH:mm:ss” in the local time zone.
Example
string year = '2008'; string month = '10'; string day = '5'; string hour = '12'; string minute = '20'; string second = '20'; string stringDate = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second; Datetime myDate = Datetime.valueOf(stringDate);
valueOf(fieldValue)
Signature
public static Datetime valueOf(Object fieldValue)
Parameters
- fieldValue: Type: Object
Return Value
Type: Datetime
Usage
Use this method with the OldValue or NewValue fields of history sObjects, such as AccountHistory, when the field is a Date/Time field.
Example
List<AccountHistory> ahlist = [SELECT Field,OldValue,NewValue FROM AccountHistory WITH USER_MODE]; for(AccountHistory ah : ahlist) { System.debug('Field: ' + ah.Field); if (ah.field == 'MyDatetime__c') { Datetime oldValue = Datetime.valueOf(ah.OldValue); Datetime newValue = Datetime.valueOf(ah.NewValue); } }
valueOfGmt(dateTimeString)
Signature
public static Datetime valueOfGmt(String dateTimeString)
Parameters
- dateTimeString: Type: String
Return Value
Type: Datetime
Usage
The specified string should use the standard date format “yyyy-MM-dd HH:mm:ss” in the GMT time zone.
Example
// California locale time string year = '2009'; string month = '3'; string day = '5'; string hour = '5'; string minute = '2'; string second = '2'; string stringDate = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second; Datetime myDate = Datetime.valueOfGMT(stringDate); DateTime expected = DateTime.newInstance(2009, 3, 4, 21, 2, 2); Assert.areEqual(expected, myDate);
year()
Signature
public Integer year()
Return Value
Type: Integer
Example
DateTime dt = DateTime.newInstance(2012, 1, 26, 5, 2, 4); Assert.areEqual(2012, dt.year());
yearGmt()
Signature
public Integer yearGmt()
Return Value
Type: Integer
Example
DateTime dt = DateTime.newInstance(2012, 10, 4, 6, 4, 6); Assert.areEqual(2012, dt.yearGMT());