1.現在の取り方の違い
| データ型 | メソッド | 結果 |
|---|---|---|
| date型 | date.today() | Tue May 01 00:00:00 GMT 2012 |
| datetime型 | datetime.now() | Tue May 01 06:31:59 GMT 2012 |
| string型に変換 | datetime.now().format('yyyy/MM/dd hh:mm:ss') | 2012/05/01 03:31:59 |
datetime型でタイムスタンプを取得する場合、now()を使用するとタイムゾーンがGMTで返ってきてしまいます。
formatを使用すると、ローカルのタームゾーンに変換されます。datetime型の場合、メソッドを活用することでタイムゾーンを変えることができます。
詳しくはこちら。http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_datetime.htm
2.date型のフォーマット
date型のフォーマットは、書式を細かく設定するものではないようです。
date.today().format('yyyy/MM/dd') は、エラーになります。
date型のフォーマットは、ユーザーのロケーションに合わせた日付の形式に変えてくれるだけのようで、
date.today().format() とすると、単純に 2012/05/01 という文字列が返ってきます。
3.datetime型のフォーマット
datetime型のformatメソッドの書式はJavaと同様です。VB出身者はフォーマットの書式で戸惑うかもしれません。
ポイントは大文字と小文字で意味が異なるという点です。
| 書式 | 結果 |
|---|---|
| yyyy/MM/dd hh:mm:ss | 2012/05/01 04:00:29 ○ |
| yyyy/mm/dd hh:mm:ss | 2012/00/01 04:00:29 × |
| yyyy/MM/DD HH:MM:SS | 2012/05/122 16:05:759 × |
参考:書式パターン文字一覧
| 文字 | 説明 | 例 |
|---|---|---|
| G | 紀元 | AD |
| y | 年 | 1996, 96 |
| M | 月 | July, Jul, 07 |
| w | 年における週 | 27 |
| W | 月における週 | 2 |
| D | 年における日 | 189 |
| d | 月における日 | 10 |
| F | 月における曜日 | 2 |
| E | 曜日 | Tuesday, Tue |
| a | 午前/午後 | PM |
| H | 一日における時(0~23) | 0 |
| k | 一日における時(1~24) | 24 |
| K | 午前/午後の時(0~11) | 0 |
| h | 午前/午後の時(1~12) | 12 |
| m | 分 | 30 |
| s | 秒 | 55 |
| S | ミリ秒 | 978 |
| z | タイムゾーン | Pacific Standard Time, PST, GMT-08:00 |
| Z | タイムゾーン | -0800 |
0 件のコメント:
コメントを投稿