none
日付を元号で表示したい RRS feed

  • 質問

  • smyです。お世話になります。Sharepoint Designerを使って、下記の日付の書式を元号にしたいのですが、
    書式の記述が分かりません。もし、FormatDateTimeではだめというならどういうやり方が
    あるでしょうか。平成と昭和のふたつだけが使えればよいので、IFで分岐して・・・みたいな
    方法でもよいのですが。よろしくお願いします。
    <xsl:value-of select="ddwrt:FormatDateTime(string(@zzzz), 1041, 'yyyy/MM/dd')" />
    2008年8月20日 8:25

回答

  • 山崎愛です。

     

    元号として表示するのでしたら、たとえば以下のようにしてみてはいかがでしょうか。

     

    Code Snippet

    <xsl:if test="(ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')&gt;=1925)and(ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')&lt;1988)">
       <xsl:value-of select="concat('昭和',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')-1925,'年',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'MM'),'月',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'dd'),'日')"/>
       </xsl:if>
       <xsl:if test="ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')&gt;=1988">
       <xsl:value-of select="concat('平成',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')-1988,'年',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'MM'),'月',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'dd'),'日')"/>
       </xsl:if>

     

     

    2008年8月21日 1:38

すべての返信

  • 山崎愛です。

     

    元号として表示するのでしたら、たとえば以下のようにしてみてはいかがでしょうか。

     

    Code Snippet

    <xsl:if test="(ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')&gt;=1925)and(ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')&lt;1988)">
       <xsl:value-of select="concat('昭和',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')-1925,'年',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'MM'),'月',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'dd'),'日')"/>
       </xsl:if>
       <xsl:if test="ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')&gt;=1988">
       <xsl:value-of select="concat('平成',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'yyyy')-1988,'年',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'MM'),'月',ddwrt:FormatDateTime(string(@_x65e5__x4ed8_),1041,'dd'),'日')"/>
       </xsl:if>

     

     

    2008年8月21日 1:38
  • smyです。

    山崎さん、大変参考になる事例をご提示いただき、まことにありがとうございます。
    おかげさまで、和暦、西暦併用の表記ができました。事例を参考に、平成の切り替わり目だけは、
    1989/1/8として、少々厳密にしてみました。   表示例) (S64) 1989.01.07
    (まあ、昭和64年のデータが出る可能性は低いので、あまり気にしなくてもよいのですが)
    昭和元年前後のデータは存在しないので、判断は削りました。それにしても、EXCELみたいに
    和暦の書式くらい標準で用意して頂きたいですね。 (^-^)


    Code Snippet

    <xsl:choose>
      <xsl:when test="ddwrt:FormatDateTime(string(@_x8abf__x5370__x65e5_),1041,'yyyyMMdd')&gt;=19890108">
        <xsl:value-of select="concat('(H',ddwrt:FormatDateTime(string(@_x8abf__x5370__x65e5_),1041, 'yyyy')-1988,ddwrt:FormatDateTime(string(@_x8abf__x5370__x65e5_),1041, ') yyyy.MM.dd')) "/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="concat('(S',ddwrt:FormatDateTime(string(@_x8abf__x5370__x65e5_),1041, 'yyyy')-1925,ddwrt:FormatDateTime(string(@_x8abf__x5370__x65e5_),1041, ') yyyy.MM.dd')) "/>
      </xsl:otherwise>
    </xsl:choose>



    2008年8月21日 7:03
  • こんにちは。

    フォーラムオペレーターの鈴木裕子です

     

    山崎愛 さん、大変的確な投稿をありがとうございました!

    smy さん、問題が解決されたようでよかったです。

    たしかに、Excel などでは、今回のような書式はカンタン~に設定できますから、手間感ありますね。。。。

    お手間をおかけいたしますが、これからも SharePoint をご活用くださいませ!

     

    こちらの情報を他の多くの皆様にも役立てていただきたいと思いましたので、

    勝手ながら私の方で回答チェックをつけさせていただきました。

    smy さんはチェックの解除もできますので、もし不適切でしたら修正をお願いします。

     

    これからもForumをお役立てくださいね!

    それでは。

    2008年8月27日 6:19
    モデレータ