Kentico-获取/格式化日期时间

Kentico-获取/格式化日期时间,kentico,Kentico,我在页面模板中有以下代码,但不知道如何格式化ReleaseDate以显示完整的月份和年份,例如2016年10月。请帮忙 发布日期: 在另一个转换中,我有这个,它可以工作,但我不知道如何在上面的上下文中使用它。我尝试了CurrentDocument.GetDateTime(..),但没有成功。您不能使用外部转换。但是,您可以使用香草.NET方法: 如果ReleaseDate可以为空,请确保应用空检查。您可以像这样直接使用C: <%= ((System.DateTime)CMS.Do

我在页面模板中有以下代码,但不知道如何格式化
ReleaseDate
以显示完整的月份和年份,例如2016年10月。请帮忙

    发布日期:
在另一个转换中,我有这个
,它可以工作,但我不知道如何在上面的上下文中使用它。我尝试了
CurrentDocument.GetDateTime(..)
,但没有成功。

您不能使用外部转换。但是,您可以使用香草.NET方法:


如果
ReleaseDate
可以为空,请确保应用空检查。

您可以像这样直接使用C:

<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.DocumentModifiedWhen).ToString("MMMM yyyy") %>

<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>

以下是Kentico宏,它可以满足您的需要:

{% GetDateTime(CurrentDocument.GetValue("ReleaseDate"), "MMMM yyyy")%} 

提供的所有答案都有效,但是。问题是,无论何时在页面模板或布局中使用
,都会因为页面生命周期而导致页面出错。因此,当您在Pages应用程序中以设计模式查看页面时,它将不可见或导致错误

我使用两种解决方案来解决这类问题:

<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.DocumentModifiedWhen).ToString("MMMM yyyy") %>

<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>
  • 在转换中放入in语句以检查它是否是最后一个语句,并使用动态内容呈现该文本
在您的转换中,您的声明可能类似于以下内容:

  • 将内容放在Web部件的内容后面,并使用Zach Perry提到的简单宏
您的宏代码如下所示:

{%GetDateTime(CurrentDocument.GetValue(“ReleaseDate”),“MMMM yyyy”)%}
您可以使用:

<%= String.Format("{0:MMMM yyyy}", CurrentDocument.GetValue("ReleaseDate")) %>

您可能需要重新考虑谁获得了这一声誉,因为我已经首先回答了您的问题,并且是正确的。尽管如此,我还是从其他人那里得到了负分。。。