Skip to main content
December 21, 2016

システムトークンの日付を日本語で

  • December 21, 2016
  • 5 replies
  • 1132 views

システムトークンの日付{{system.date}}が英語で表示されて困っていて

日本語にできないかと調べたところ、できました。 

http://developers.marketo.com/email-scripting/examples/ http://developers.marketo.com/email-scripting/examples/

Velocity - DateTool

今までは

{{system.date}} → Dec 21, 2016

My TokenのEmail Scriptで

{{my.JP DATE}}

$date.format('yyyy年MM月dd日', $date.getDate()) → 2016年12月21日

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

5 replies

December 26, 2016

安竹です。

ちなみに、日型のカスタムフィールドに入っている日付を年月日で表示するとしたら、以下です。

(lead.yYDate がカスタムフィールドです。利用カスタムフィールドのチェックを忘れずに)

#set($formattedDate = $date.format("yyyy年MM月dd日", ${convert.parseDate(${lead.yYDate}, 'yyyy-MM-dd')}))

${formattedDate}

December 26, 2016

@Yukio Yasutake​さん、できました! ありがとうございます。

April 12, 2017

長田さん、

全体の構造がまだ把握できていないので、何が問題かを理解するために、

{{my.JP DATE}} をメール本文に記載して、日付が出るが確認していただけませんか?

もし、それででるなら、予想ですが、スクリプトの中でURLを構築していませんか?

その場合、以下の制限があります。ページの1番下です。Right という書き方でないとだめです。

http://developers.marketo.com/email-scripting/

April 12, 2017

@Yukio Yasutake​ さん、EメールトークンをメールエディタでリンクのURLの一部に設定すると長田さんの症状になりました。

メールのリンクをクリックすると、URLのパラメータが、param1=${my.vTESTDATETIME_5}

トークンが変換されないだけでなく、勝手にvとか_5がくっついています。

トラキングなしだと正常で、jump経由だと仕様的にだめっぽい気がしてます。

April 12, 2017

なんと!これは、ちょっと予想と違っていました。画像ありがとうございます。

まさきさん、長田さん、こちらは、サポートを経由していただいた方が良さそうです。

お手数ですが、お願いできますか?

私の方でもフォローしてみます。

April 12, 2017

まさきさん、こちら、よく見ると、上のドキュメントのやってはいけないパターンのように見えてきました。

スクリプトの中で、htmlのアンカーまで作る形で(ドキュメントのRightの形)で、メール本文に直接マイトークンを置くようにしてみると良いかもしれないです。

メールスクリプトの実行とトラッキングリンクの作成順序の技術的な制限なのだと思います。

京子_長田
Level 2
April 13, 2017

>安竹さん

いろいろと、ありがとうございます!

私のほうで作成したトークンと、ソースに仕込んだ状態が下記のような形だったので

昨日教えていただいたURL(http://developers.marketo.com/email-scripting/

の中の下記に該当しそうですね…!

ここからどう直せばいいか浮かばず止まっております。。

>まさきさん

お試しいただきましてありがとうございます!

まさにその状態でした…!

April 13, 2017

長田さん、

回避するには、スクリプトの中でリンクを構築すればよいです。

#set($formattedDate = $date.format('yyyy年MM月dd日', $date.getDate()))

<a href="https://www.google.co.jp/?utm_source=XXX&utm_medium=mail&utm_campaign=XXX&utm_content=html_btnlink_01&utm_term=${formattedDate}">

リンクのテキスト

</a>

上を、{{my.JP DATE}} の中に書いて、

メールの本文で、{{my.JP DATE}} だけ書いてみて実験してみてはどうでしょう?

June 8, 2017

時差ポストで恐縮ですが、関連するネタだと思いまして。

{{system.date}}はその実行時の日時を返してくれますが、サーバーの日時のために日本との時差がどうしても生じてしまいます。

色々調べて、日本時間での日時を返すようにできましたので共有します。

メールスクリプト内で以下のように記載します。

#set( $myTimeZone = $date.getTimeZone().getTimeZone('Asia/Tokyo') ) 

#set( $locale = $date.getLocale() ) 

${date.format('yyyy-MM-dd H:m:s',$date.getDate(),$locale,$myTimeZone)} 

*date.format()におけるフォーマットは好きなものにしてください。

Misaki_Oomawari
Level 2
September 10, 2018

わたしも時差ポストで恐縮ですが…。

ここに記載されている内容を参考に

・日時型のカスタムフィールドに入っているデータを

・日本時間で表示する

を実現しようとしたところ、ちょっと苦労したので、やり方を共有させていただきます。

メールスクリプト内に以下のように記述します。

--------------------

#set($myTimeZone = $date.getTimeZone().getTimeZone('Asia/Tokyo'))

#set($locale = $date.getLocale())

#set($myDate = $convert.parseDate($lead.sysOrderDatetime, 'yyyy-MM-dd HH:mm:ss'))

${date.format("yyyy年MM月dd日 H時m分", $myDate,$locale,$myTimeZone)}

※$lead.sysOrderDatetime 部分はお使いのカスタムフィールド名

※date.format 以下はお好きなフォーマットに変えてください

--------------------

★ちなみに…参考にしたのは以下ですが、そのままではうまくいかなかったので少しアレンジしています。

 場合によっては、こちらの記述をマネした方がいいかもしれません。

 https://nation.marketo.com/message/141420-set-local-timezone-using-velocity-scripts