Datetime クラス
名前空間
使用方法
Apex では、日付値の日時値への暗黙的なキャストと明示的なキャストの両方がサポートされています。その結果、日時値の時間成分はゼロになります。Datetime についての詳細は、「Datetime データ型」を参照してください。
Datetime のメソッド
Datetime のメソッドは次のとおりです。
addDays(additionalDays)
署名
public Datetime addDays(Integer additionalDays)
パラメーター
- additionalDays
- 型: Integer
戻り値
型: Datetime
例
1Datetime myDateTime = Datetime.newInstance(1960, 2, 17);
2Datetime newDateTime = myDateTime.addDays(2);
3Datetime expected = Datetime.newInstance(1960, 2, 19);
4System.assertEquals(expected, newDateTime);addHours(additionalHours)
署名
public Datetime addHours(Integer additionalHours)
パラメーター
- additionalHours
- 型: Integer
戻り値
型: Datetime
例
1DateTime myDateTime = DateTime.newInstance(1997, 1, 31, 7, 8, 16);
2DateTime newDateTime = myDateTime.addHours(3);
3DateTime expected = DateTime.newInstance(1997, 1, 31, 10, 8, 16);
4System.assertEquals(expected, newDateTime);addMinutes(additionalMinutes)
署名
public Datetime addMinutes(Integer additionalMinutes)
パラメーター
- additionalMinutes
- 型: Integer
戻り値
型: Datetime
例
1DateTime myDateTime = DateTime.newInstance(1999, 2, 11, 8, 6, 16);
2DateTime newDateTime = myDateTime.addMinutes(7);
3DateTime expected = DateTime.newInstance(1999, 2, 11, 8, 13, 16);
4System.assertEquals(expected, newDateTime);addMonths(additionalMonths)
署名
public Datetime addMonths(Integer additionalMonths)
パラメーター
- additionalMonths
- 型: Integer
戻り値
型: Datetime
例
1DateTime myDateTime = DateTime.newInstance(2000, 7, 7, 7, 8, 12);
2DateTime newDateTime = myDateTime.addMonths(1);
3DateTime expected = DateTime.newInstance(2000, 8, 7, 7, 8, 12);
4System.assertEquals(expected, newDateTime);addSeconds(additionalSeconds)
署名
public Datetime addSeconds(Integer additionalSeconds)
パラメーター
- additionalSeconds
- 型: Integer
戻り値
型: Datetime
例
1DateTime myDateTime = DateTime.newInstance(2001, 7, 19, 10, 7, 12);
2DateTime newDateTime = myDateTime.addSeconds(4);
3DateTime expected = DateTime.newInstance(2001, 7, 19, 10, 7, 16);
4System.assertEquals(expected, newDateTime);addYears(additionalYears)
署名
public Datetime addYears(Integer additionalYears)
パラメーター
- additionalYears
- 型: Integer
戻り値
型: Datetime
例
1DateTime myDateTime = DateTime.newInstance(2009, 12, 17, 13, 6, 6);
2DateTime newDateTime = myDateTime.addYears(1);
3DateTime expected = DateTime.newInstance(2010, 12, 17, 13, 6, 6);
4System.assertEquals(expected, newDateTime);date()
署名
public Date date()
戻り値
型: Date
例
1DateTime myDateTime = DateTime.newInstance(2006, 3, 16, 12, 6, 13);
2Date myDate = myDateTime.date();
3Date expected = Date.newInstance(2006, 3, 16);
4System.assertEquals(expected, myDate);dateGMT()
署名
public Date dateGMT()
戻り値
型: Date
例
1// California local time, PST
2DateTime myDateTime = DateTime.newInstance(2006, 3, 16, 23, 0, 0);
3Date myDate = myDateTime.dateGMT();
4Date expected = Date.newInstance(2006, 3, 17);
5System.assertEquals(expected, myDate);day()
署名
public Integer day()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.newInstance(1986, 2, 21, 23, 0, 0);
2System.assertEquals(21, myDateTime.day());dayGmt()
署名
public Integer dayGmt()
戻り値
型: Integer
例
1// California local time, PST
2DateTime myDateTime = DateTime.newInstance(1987, 1, 14, 23, 0, 3);
3System.assertEquals(15, myDateTime.dayGMT());dayOfYear()
署名
public Integer dayOfYear()
戻り値
型: Integer
例
たとえば、2008 年 2 月 5 日午前 8 時 30 分 12 秒は、day 36 です。
1Datetime myDate = Datetime.newInstance(2008, 2, 5, 8, 30, 12);
2system.assertEquals(myDate.dayOfYear(), 36);dayOfYearGmt()
署名
public Integer dayOfYearGmt()
戻り値
型: Integer
例
1// This sample assumes we are in the PST timezone
2DateTime myDateTime = DateTime.newInstance(1999, 2, 5, 23, 0, 3);
3// January has 31 days + 5 days in February = 36 days
4// dayOfYearGmt() adjusts the time zone from the current time zone to GMT
5// by adding 8 hours to the PST time zone, so it's 37 days and not 36 days
6System.assertEquals(37, myDateTime.dayOfYearGmt());format()
署名
public String format()
戻り値
型: String
例
1DateTime.myDateTime = DateTime.newInstance(1993, 6, 6, 3, 3, 3);
2system.assertEquals('6/6/1993, 3:03 AM', mydatetime.format());format(dateFormatString)
署名
public String format(String dateFormatString)
パラメーター
- dateFormatString
- 型: String
戻り値
型: String
使用方法
Java の SimpleDateFormat についての詳細は、「Java SimpleDateFormat」を参照してください。
例
1Datetime myDT = DateTime.newInstance(2022, 5, 4, 19, 37, 55);
2String myDate = myDT.format('yyyy-MM-dd h:mm a');
3String expected = '2022-05-04 7:37 PM';
4System.assertEquals(expected, myDate);format(dateFormatString, timezone)
署名
public String format(String dateFormatString, String timezone)
パラメーター
- dateFormatString
- 型: String
- timezone
- 型: String
- timezone 引数の有効なタイムゾーン値は、Java の TimeZone.getAvailableIDs メソッドから返されるタイムゾーンに対応する Java TimeZone クラスのタイムゾーンです。3 文字の省略名ではなく、タイムゾーンの完全名を使用することをお勧めします。
戻り値
型: String
使用方法
Java の SimpleDateFormat についての詳細は、「Java SimpleDateFormat」を参照してください。
例
1Datetime GMTDate =
2 Datetime.newInstanceGmt(2011,6,1,12,1,5);
3String strConvertedDate =
4 GMTDate.format('MM/dd/yyyy HH:mm:ss',
5 'America/New_York');
6// Date is converted to
7// the new time zone and is adjusted
8// for daylight saving time.
9System.assertEquals(
10 '06/01/2011 08:01:05', strConvertedDate);formatGmt(dateFormatString)
署名
public String formatGmt(String dateFormatString)
パラメーター
- dateFormatString
- 型: String
戻り値
型: String
使用方法
Java の SimpleDateFormat についての詳細は、「Java SimpleDateFormat」を参照してください。
例
1DateTime myDateTime = DateTime.newInstance(1993, 6, 6, 3, 3, 3);
2String formatted = myDateTime.formatGMT('EEE, MMM d yyyy HH:mm:ss');
3String expected = 'Sun, Jun 6 1993 10:03:03';
4System.assertEquals(expected, formatted);formatLong()
署名
public String formatLong()
戻り値
型: String
例
1// Passing local date based on the PST time zone
2Datetime dt = DateTime.newInstance(2012,12,28,10,0,0);
3// Writes 12/28/2012 10:00:00 AM PST
4System.debug('dt.formatLong()=' + dt.formatLong());getTime()
署名
public Long getTime()
戻り値
型: Long
例
1DateTime dt = DateTime.newInstance(2007, 6, 23, 3, 3, 3);
2Long gettime = dt.getTime();
3Long expected = 1182592983000L;
4System.assertEquals(expected, gettime);hour()
署名
public Integer hour()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.newInstance(1998, 11, 21, 3, 3, 3);
2System.assertEquals(3 , myDateTime.hour());hourGmt()
署名
public Integer hourGmt()
戻り値
型: Integer
例
1// California local time
2DateTime myDateTime = DateTime.newInstance(2000, 4, 27, 3, 3, 3);
3System.assertEquals(10 , myDateTime.hourGMT());isSameDay(dateToCompare)
署名
public Boolean isSameDay(Datetime dateToCompare)
パラメーター
- dateToCompare
- 型: Datetime
戻り値
型: Boolean
例
1datetime myDate = datetime.now();
2datetime dueDate =
3 datetime.newInstance(2008, 1, 30);
4boolean dueNow = myDate.isSameDay(dueDate);millisecond()
署名
public Integer millisecond()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.now();
2system.debug(myDateTime.millisecond());millisecondGmt()
署名
public Integer millisecondGmt()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.now();
2system.debug(myDateTime.millisecondGMT());minute()
署名
public Integer minute()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.newInstance(2001, 2, 27, 3, 3, 3);
2system.assertEquals(3, myDateTime.minute());minuteGmt()
署名
public Integer minuteGmt()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.newInstance(2002, 12, 3, 3, 3, 3);
2system.assertEquals(3, myDateTime.minuteGMT());month()
署名
public Integer month()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.newInstance(2004, 11, 4, 3, 3, 3);
2system.assertEquals(11, myDateTime.month());monthGmt()
署名
public Integer monthGmt()
戻り値
型: Integer
例
1DateTime myDateTime = DateTime.newInstance(2006, 11, 19, 3, 3, 3);
2system.assertEquals(11, myDateTime.monthGMT());newInstance(milliseconds)
署名
public static Datetime newInstance(Long milliseconds)
パラメーター
- milliseconds
- 型: Long
例
1Long longtime = 1341828183000L;
2DateTime dt = DateTime.newInstance(longtime);
3DateTime expected = DateTime.newInstance(2012, 7, 09, 3, 3, 3);
4System.assertEquals(expected, dt);newInstance(date, time)
署名
public static Datetime newInstance(Date date, Time time)
例
1Date myDate = Date.newInstance(2011, 11, 18);
2Time myTime = Time.newInstance(3, 3, 3, 0);
3DateTime dt = DateTime.newInstance(myDate, myTime);
4DateTime expected = DateTime.newInstance(2011, 11, 18, 3, 3, 3);
5System.assertEquals(expected, dt);newInstance(year, month, day, hour, minute, second)
署名
public static Datetime newInstance(Integer year, Integer month, Integer day, Integer hour, Integer minute, Integer second)
パラメーター
例
1Datetime myDate = Datetime.newInstance(2008, 12, 1, 12, 30, 2);newInstanceGmt(date, time)
署名
public static Datetime newInstanceGmt(Date date, Time time)
戻り値
型: Datetime
例
1Date myDate = Date.newInstance(2013, 11, 12);
2Time myTime = Time.newInstance(3, 3, 3, 0);
3DateTime dt = DateTime.newInstanceGMT(myDate, myTime);
4DateTime expected = DateTime.newInstanceGMT(2013, 11, 12, 3, 3, 3);
5System.assertEquals(expected, dt);newInstanceGmt(year, month, date, hour, minute, second)
署名
public static Datetime newInstanceGmt(Integer year, Integer month, Integer date, Integer hour, Integer minute, Integer second)
パラメーター
戻り値
型: Datetime
例
1//California local time
2DateTime dt = DateTime.newInstanceGMT(1998, 1, 29, 2, 2, 3);
3DateTime expected = DateTime.newInstance(1998, 1, 28, 18, 2, 3);
4System.assertEquals(expected, dt);now()
署名
public static Datetime now()
例
1datetime myDateTime = datetime.now();parse(datetimeString)
署名
public static Datetime parse(String datetimeString)
パラメーター
- datetimeString
- 型: String
例
1Datetime dt = DateTime.parse('10/14/2011, 11:46 AM');
2String myDtString = dt.format();
3system.assertEquals(myDtString, '10/14/2011, 11:46 AM');second()
署名
public Integer second()
戻り値
型: Integer
例
1DateTime dt = DateTime.newInstanceGMT(1999, 9, 22, 3, 1, 2);
2System.assertEquals(2, dt.second());secondGmt()
署名
public Integer secondGmt()
戻り値
型: Integer
例
1DateTime dt = DateTime.newInstance(2000, 2, 3, 3, 1, 5);
2System.assertEquals(5, dt.secondGMT());time()
署名
public Time time()
戻り値
型: Time
例
1DateTime dt = DateTime.newInstance(2002, 11, 21, 0, 2, 2);
2Time expected = Time.newInstance(0, 2, 2, 0);
3System.assertEquals(expected, dt.time());timeGmt()
署名
public Time timeGmt()
戻り値
型: Time
例
1// This sample is based on the PST time zone
2DateTime dt = DateTime.newInstance(2004, 1, 27, 4, 1, 2);
3Time expected = Time.newInstance(12, 1, 2, 0);
4// 8 hours are added to the time to convert it from
5// PST to GMT
6System.assertEquals(expected, dt.timeGMT());valueOf(dateTimeString)
署名
public static Datetime valueOf(String dateTimeString)
パラメーター
- dateTimeString
- 型: String
使���方法
指定した文字列は、ローカルタイムゾーンの標準の日付形式「yyyy-MM-dd HH:mm:ss」を使用する必要があります。
例
1string year = '2008';
2string month = '10';
3string day = '5';
4string hour = '12';
5string minute = '20';
6string second = '20';
7string stringDate = year + '-' + month + '-' + day + ' ' + hour + ':'
8 + minute + ':' + second;
9
10Datetime myDate = Datetime.valueOf(stringDate);valueOf(fieldValue)
署名
public static Datetime valueOf(Object fieldValue)
パラメーター
- fieldValue
- 型: Object
戻り値
型: Datetime
使用方法
項目が datetime 項目の場合は、AccountHistory など、履歴 sObject の OldValue 項目または NewValue 項目でこのメソッドを使用します。
例
1List<AccountHistory> ahlist = [SELECT Field,OldValue,NewValue FROM AccountHistory];
2for(AccountHistory ah : ahlist) {
3 System.debug('Field: ' + ah.Field);
4 if (ah.field == 'MyDatetime__c') {
5 Datetime oldValue = Datetime.valueOf(ah.OldValue);
6 Datetime newValue = Datetime.valueOf(ah.NewValue);
7 }
8}valueOfGmt(dateTimeString)
署名
public static Datetime valueOfGmt(String dateTimeString)
パラメーター
- dateTimeString
- 型: String
戻り値
型: Datetime
使用方法
指定した文字列は、GMT タイムゾーンの標準の日付形式「yyyy-MM-dd HH:mm:ss」を使用する必要があります。
例
1// California locale time
2string year = '2009';
3string month = '3';
4string day = '5';
5string hour = '5';
6string minute = '2';
7string second = '2';
8string stringDate = year + '-' + month + '-' + day + ' ' + hour + ':'
9 + minute + ':' + second;
10
11Datetime myDate = Datetime.valueOfGMT(stringDate);
12
13DateTime expected = DateTime.newInstance(2009, 3, 4, 21, 2, 2);
14System.assertEquals(expected, myDate);year()
署名
public Integer year()
戻り値
型: Integer
例
1DateTime dt = DateTime.newInstance(2012, 1, 26, 5, 2, 4);
2System.assertEquals(2012, dt.year());yearGmt()
署名
public Integer yearGmt()
戻り値
型: Integer
例
1DateTime dt = DateTime.newInstance(2012, 10, 4, 6, 4, 6);
2System.assertEquals(2012, dt.yearGMT());