Use additional renderers like this实现接口的类:
| 代码如下 | 复制代码 |
| internal class AdvancedDateTimeRenderer : IAttributeRenderer { public string ToString(object o) { return ToString(o, null); } public string ToString(object o, string formatName) { if (o == null) return null; if (string.IsNullOrEmpty(formatName)) return o.ToString(); DateTime dt = Convert.ToDateTime(o); return string.Format("{0:" + formatName + "}", dt); } } |
|
and then add this to your StringTemplate such as把类注册到模板组中:
| 代码如下 | 复制代码 |
| var stg = new StringTemplateGroup("Templates", path); stg.RegisterAttributeRenderer(typeof(DateTime), new AdvancedDateTimeRenderer()); |
|
then in st file模板文件中的写法:
| 代码如下 | 复制代码 |
|
$YourDateVariable; format="dd/mm/yyyy"$ |
|
另一种方法 默认都是调用attribute.ToString()方法。如果要自定义输出格式,则需要实现IAttributeRenderer接口。下面来定义一个自定义日期格式化输出:
| 代码如下 | 复制代码 |
|
class CustomDataRenderer : IAttributeRenderer { |
|
使用:
| 代码如下 | 复制代码 |
|
StringTemplate st = new StringTemplate("$d$"); |
|
可以看到输出了前面定义的ToString(object o)方法定义的格式,那么如果需要输出多种格式,这个方法就显得力不从心了。
接下来改造CustomDataRenderer类,使它能输出多种格式:
| 代码如下 | 复制代码 |
|
使用: StringTemplate st = new StringTemplate("[$d1$] [$d2;format="CNDate"$] [$d3;format="CNTime"$]"); |
|
输出:[2010年04月30日 21点40分] [2010年04月30日] [21点40分]
罚罪1+2全80集阿里云盘全集资源链接-罚罪1+2全集高清1080P/4K阿里云盘资源下载无删减
邵氏精品禁品未删减资源在线看-必看的50部邵氏电影无删减观看入口
羞羞漫画高清最新资源-正规平台免费入口与无删减资源导航
日漫入口-官方认证安全入口与无删减日漫资源直达导航
一拳超人漫画入口-2026最新免费高清全集在线看
杨紫《生命树》1080p全40集迅雷磁力链接分享-杨紫《生命树》40集高清完整版迅雷云盘下载1080P(4k)资源