こんにちは、管理人の@Salesforce.Zです。
日付の形式を設定することが複雑ではありませんが、毎回忘れがちです。日付のフォーマットは少々の不注意で、すぐアメリカ時間になってしまいますので、メモしとこうと思います。
読んだら得ること
★ VFとApexでの日付のフォーマット/形式の設定方法
目次
Apexでの日付のフォーマット/形式の設定方法
日付には、Date型とDatetime型があります。
Date型
System.debug('■■■■ Date ■■■' + date.today().format());
Formatメソッドに日付形式を指定する
System.debug('■■■■ Date ■■■' + date.today().format('yyyy-MM-dd'));
DateTime型
yyyy-MM-dd hh:mm:ss(hhは12時間制)
System.debug('■■■■ DateTime ■■■' + datetime.newInstance(2019, 12, 12, 14, 30, 00).format('yyyy-MM-dd hh:mm:ss'));
yyyy-MM-dd HH:mm:ss(HHは24時間制)
System.debug('■■■■ DateTime ■■■' + datetime.newInstance(2019, 12, 12, 14, 30, 00).format('yyyy-MM-dd HH:mm:ss'));
yyyy-MM-dd HH:mm:ss(MM(2個)は月が2桁(左ゼロ埋め))
System.debug('■■■■ DateTime ■■■' + datetime.newInstance(2019, 6, 12, 14, 30, 00).format('yyyy-MM-dd HH:mm:ss'));
yyyy-M-dd HH:mm:ss(M(1個)は月が2桁(左ゼロ埋めしない))
System.debug('■■■■ DateTime ■■■' + datetime.newInstance(2019, 6, 12, 14, 30, 00).format('yyyy-M-dd HH:mm:ss'));
タイムゾーン
使用例
System.debug('■■■■ DateTime ■■■' + datetime.newInstance(2019, 6, 12, 14, 30, 00).format('yyyy-MM-dd HH:mm:ss', 'JST'));
VFでの日付フォーマット
<!-- カンマ区切り数値 --> <apex:outputtext value="{0, number, ###,###}"> <apex:param value="{!ItemNumber}"></apex:param> </apex:outputtext> <!-- 0埋め6桁数値 --> <apex:outputtext value="{0, number, 000000}"> <apex:param value="{!ItemNumber}"></apex:param> </apex:outputtext> <!-- 日付と時刻 --> <apex:outputtext value="{0, date, yyyy/MM/dd HH:mm:ss}"> <apex:param value="{!ItemDate}"></apex:param> </apex:outputtext>