今天在做FreeMark,界面时间格式需要简单处理下。看下了下FreeMark的一些处理方式,觉得是我目前用过是时间格式中最方面的一种。整理列在下面string(当和一个日期值一起使用)
这个内置标签用指定的格式把日期转换成字符串,(把默认的格式用FreeMarker的ate_format,time_format和datetime_format设置指定对你有好处,那样的话你就不需要这个标签了。
格式可以是一个预定义的,你也可以明确指定格式。
预定义的格式是:short,medium,long和full.定义了结果字符串的长度。例如,如果locale是US_EN,时区是US.PACIFIC,那么:
${openingTime?string.short}
${openingTime?string.medium}
${openingTime?string.long}
${openingTime?string.full}
${nextDiscountDay?string.short}
${nextDiscountDay?string.medium}
${nextDiscountDay?string.long}
${nextDiscountDay?string.full}
${lastUpdated?string.short}
${lastUpdated?string.medium}
${lastUpdated?string.long}
${lastUpdated?string.full}
输出类似这样:
12:45 PM
12:45:09 PM
12:45:09 PM CEST
12:45:09 PM CEST
4/20/07
Apr 20, 2007
April 20, 2007
Friday, April 20, 2007
4/20/07 12:45 PM
Apr 20, 2007 12:45:09 PM
April 20, 2007 12:45:09 PM CEST
Friday, April 20, 2007 12:45:09 PM CEST
short,medium.long和full准确的意思依赖于当前locale(语言),此外,这是你运行FreeMarker的java实现平台所指定的,而不是FreeMarker.
对于即包含日期和时间的日期值,你可以单独的指定日期和时间部分的长度。
${lastUpdated?string.short_long} <#-- short date, long time -->
${lastUpdated?string.medium_short} <#-- medium date, short time -->
将会输出:
4/8/03 9:24:44 PM PDT
Apr 8, 2003 9:24 PM
注意:string.short跟?string.short_short是一样的,?string.medium和string.medium_medium一样……
警告:
不幸的是,由于java平台的限制。当你在Data Model中存有日期值的时候,FreeMarker不能决定该变量只存储日期部分或者时间部分再或者日期和时间。这种情况下当你 像${lastUpdated?string.short}或者简单的${lastUpdated}这样写的时候,FreeMarker不知道如何显示日 期。这样它会停下来,并且报错。为了防止这样,你可以使用?date,?time和?datetime内置标签来帮助FreeMarker.举 例:${lastUpdated?datetime?string.short}.询问程序员某个日期变量是否存在这个问题,或者一直使 用?date,?time和?datetime.
你可以使用?string(格式)明确指定格式,代替预定义格式。格式使用java日期格式语法例如:
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
${lastUpdated?string("EEE, MMM d, ''yy")}
${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a '('zzz')'")}
将会输出:
2003-04-08 21:24:44 Pacific Daylight Time
Tue, Apr 8, '03
Tuesday, April 08, 2003, 09:24:44 PM (PDT)
注意:
不像预定义格式,你不需要在指定的格式上使用?date,?time和?datetime,因为你指定的格式告诉FreeMarKer显示日期的哪 部分。无论如何,FreeMarker都会相信你,so you can show "noise" if you display parts that are actually not stored in the variable.例如:${openingTime?string("yyyy-mm-dd hh:mm:ss a")},openingTime只存储了时间。将会显示1790-01-01 09:24:44 PM.
格式也可以是short,medium……"short_medium"等等。这样跟你用"."使用预定义的格式是一样的:someDate?string("short")和someDate?string.short是相当的。
date,time,datetime
这些标签可以用来指定日期变量中的哪些部分被使用。
date:只使用年、月、日
time:只使用时、分、秒和毫秒部分
datetime:日期和时间两部分都被使用
理想情况下,你不需要使用它们。不幸的是,由于java平台的技术限制。FreeMarker有的时候不能找到日期变量使用的部分(例如:只有年月 日,或者只有时分秒,或者两者)询问程序员那个变量存在这个问题。如果FreeMarker需要执行一个需要这个变量的操作--就像把日期作为字符显示 --但是它不知道使用那些部分,它会停下来报错。这就是你必须使用这些标签的情况。例如:假定openingTime就是这样一个问题变量:
<#assign x = openingTime> <#-- no problem can occur here -->
${openingTime?time} <#-- without ?time it would fail -->
<#-- For the sake of better understanding, consider this: -->
<#assign openingTime = openingTime?time>
${openingTime} <#-- this will work now -->
另一种用法:切短日期。例如:
Last updated: ${lastUpdated} <#-- assume that lastUpdated is a date-time value -->
Last updated date: ${lastUpdated?date}
Last updated time: ${lastUpdated?time}
将显示:
Last updated: 04/25/2003 08:00:54 PM
Last updated date: 04/25/2003
Last updated time: 08:00:54 PM
- 浏览: 311785 次
文章分类
最新评论
-
lyjilu:
作者文笔不错,公司也不错
项目经理叫你改Bug,后来就发生了…… -
chrislee1982:
我只能说那个开发的,能力是有的,情商有点让人着急
项目经理叫你改Bug,后来就发生了…… -
movingboy:
这个做法不奇怪吧?生产急用就先临时解决,回头再想办法优化
项目经理叫你改Bug,后来就发生了…… -
tcrct:
已经在项目中大部份都用到了。
Java程序员一定知道的优秀第三方库 -
xianlc:
整理的很全
Java程序员一定知道的优秀第三方库
发表评论
-
大话程序猿眼里的高并发
2016-11-08 09:49 810高并发是指在同一个时 ... -
项目经理叫你改Bug,后来就发生了……
2016-09-20 09:05 1749你曾经碰到过现在这种情况: 你的代码非常优雅。 ... -
Java程序员一定知道的优秀第三方库
2016-05-19 13:41 3828几乎每个程序员都知道要“避免重复发明轮子”的道理——尽可能使 ... -
我已经写了48年代码了,我感觉我还能写下去
2015-11-22 11:06 2222这是来自quroa的问题:Why-aren't-there- ... -
程序猿为什么老是活得比狗还累?
2015-11-04 08:36 3598一年多,我仗著自己年 ... -
Java开发熟手该当心的11个错误
2015-06-27 13:54 3443#1、不在属性文件或XML文件中外化配置属性。比如,没有把 ... -
Java开发熟手该当心的11个错误
2015-03-22 09:36 4706#1、不在属性文件或XML文件中外化配置属性。比如,没有把 ... -
Java开发者写SQL时常犯的10个错误
2015-03-14 17:13 42021、不用PreparedStatements ... -
关于java堆内存溢出的几种情况
2015-02-27 10:01 6458【情况一】: java ... -
Java线程中yield与join方法的区别
2015-02-21 17:53 5989长期以来,多线程问题 ... -
Java进行RSA加解密的例子
2015-02-08 09:56 4216加密是保证数据安全的手段之一。加密是将纯文本数据转换为难以理 ... -
最具争议的10个Java话题
2015-02-05 09:10 26801、Java8已经到来。什么!? Java8 支持lambd ... -
为什么不允许代码里出现“魔数”
2015-01-29 10:13 927在一个新项目中,我最先做的事情之一,就是建立使用诸如Ch ... -
Java高效读取大文件
2015-01-21 13:45 1138读取文件行的标准方式是在内存中读取,Guava 和Apa ... -
Java常见内存溢出异常分析
2015-01-20 06:15 699栈溢出(StackOverflowError) 栈 ... -
成为高级程序员的10个步骤
2015-01-17 11:09 1553What 软件工程师的职业生涯要历经以下几个阶段:初级、中 ... -
Java 9中新的货币API
2015-01-11 10:34 1282JSR 354定义了一套新的Java货币API,计划会在J ... -
Java中有关Null的9件事
2015-01-03 21:13 1647Java中的Null是什么? 正如我说过的那样,nu ... -
理解Java中的弱引用
2014-12-31 09:38 2240不久之前,我面试了一些求职Java高级开发工程师的应聘者。 ... -
程序员找不到开发工作的6大原因
2014-12-29 23:20 22541.我们Google了你的名字 “这家伙不错”,但是当我用 ...
相关推荐
1概念 2指令 if, else, elseif ...常用格式化日期 添加全局共享变量数据模型 直接调用java对象的方法 字符串处理(内置方法) 在模板里对sequences和hashes初始化 注释标志 sequences内置方法 hashes内置方法
encoding="GBK" 编码格式 parse=true 是否作为ftl语法解析,默认是true,false就是以文本方式引入.注意在ftl文件里布尔值都是直接赋值 的如parse=true,而不是parse="true" 用例 /common/copyright.ftl 包含内容 ...
毕业设计,基于SpringBoot+Freemark+MySql开发的在线电影订票网站,内含Java完整源代码,数据库脚本 基于Springboot+...亮点功能:短信发送接口,支付宝在线支付接口,座位锁定及并发处理,排片时间冲突检测等。
时间格式化-自由扩展型.ec 透明控件.ec EDB、高级表格、XLS互换.ec 汉字转拼音.ec 双功能自动编号模块.ec 打印预览2.45(注册表配置).ec 取纯数字时间文本模块.ec 磁性窗口2.0.ec 超级表达式计算.ec Excel功能模块.ec...
这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>... <#else> ... 例子如下: (age>60)>老年人 ...
日期格式规范(1.0).zip 日期设置(1.0).zip 软件注册模块V1.0(1.0).zip 软件注册模块V2.0(2.0).zip Rockey_ecom(1.0).zip 软件内存优化(1.2).zip 设置控件锚点(1.11).zip 设置IE代理服务器(1.0).zip 世恒通用安装系统...
ACCESS到高级表格1.1(1.1).zip Access操作(1.0).zip ACCESS到超级列表框(1.0).zip ...日期格式规范(1.0).zip 日期设置(1.0).zip 软件注册模块V1.0(1.0).zip 软件注册模块V2.0(2.0).zip Rockey_ecom(1.0)....
freemark模块_取文件.ec gdiplus类模块.ec GetStringSize.ec Hex-Dec.ec HTTP.ec http_ec.ec HTTP访问模块 .ec HTTP访问模块1.0.ec HTTP访问模块1.1.ec IC卡读写模块 1.0.ec internet2.ec IPbox2.ec IP...
freemark 模块_取文件.ec ftp文件操作模块.ec gdiplus类模块.ec GetStringSize.ec GIF快 照.ec Hex-Dec.ec Hex-Dec1.ec Hex2Dec.ec hide.ec hotkey.ec HTTP.ec http_ec.ec http_ec1.ec HTTP 访问模块 .ec HTTP访问...
freemark 模块_取文件.ec ftp文件操作模块.ec gdiplus类模块.ec GetStringSize.ec GIF快 照.ec Hex-Dec.ec Hex-Dec1.ec Hex2Dec.ec hide.ec hotkey.ec HTTP.ec http_ec.ec http_ec1.ec HTTP 访问模块 .ec HTTP访问...
2005-12-11 01:55 5016 1490 易语言模块大全\freemark模块_取文件.ec 2005-10-21 15:30 4091 1371 易语言模块大全\GetStringSize.ec 2005-10-21 15:30 2804 952 易语言模块大全\Hex-Dec.ec 2005-10-21 15:30 21249 ...
2005-12-11 01:55 5016 1490 易语言模块大全\freemark模块_取文件.ec 2005-10-21 15:30 4091 1371 易语言模块大全\GetStringSize.ec 2005-10-21 15:30 2804 952 易语言模块大全\Hex-Dec.ec 2005-10-21 15:30 ...
2005-12-11 01:55 5016 1490 易语言模块大全\freemark模块_取文件.ec 2005-10-21 15:30 4091 1371 易语言模块大全\GetStringSize.ec 2005-10-21 15:30 2804 952 易语言模块大全\Hex-Dec.ec 2005-10-21 15:30 21249 ...