需要在freemarker中呈现毫秒级时间,查了很多资料,始终不对。最后终于弄明白原因:java和c#中日期的毫秒表示是不同的。c#中的毫秒级用f表示,java中用S表示。而我将一直在java中用C#的表示方法……

正确地表示:

<date>${logs.eventDate?string('yyyy-MM-dd HH:mm:ss.SSS')}</date>

1.java中的日期格式——摘自:点击打开链接

日期和时间模式

日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 199696
M 年中的月份 Month JulyJul07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text TuesdayTue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard TimePSTGMT-08:00
Z 时区 RFC 822 time zone -0800

示例

以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。

日期和时间模式 结果
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700

2.C#中的日期格式—— 摘自:点击打开链接

{0:yyyy-MM-dd HH:mm:ss.fff}:使用24小时制格式化日期
{0:yyyy-MM-dd hh:mm:ss.fff}:使用12小时制格式化日期

以下同理,从左至右分别为-年-月-日 时:分:秒.毫秒
{0:yyyy-MM-dd HH:mm:ss zzz}
{0:yyyy-MM-dd HH:mm:ss.ff zzz}
{0:yyyy-MM-dd HH:mm:ss.fff zzz}
{0:yyyy-MM-dd HH:mm:ss.ffff zzz}

以下测试代码
//---假设时间为-2009-03-17 16:50:49.92
object objValue2 = Business.Services.ExecuteScalar(sqliteconnstring, "Select LastUpdate From CmItemClass2 order by LastUpdate desc limit 0,1");
string lastUpdate2 = objValue2 == null ? string.Empty : string.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", objValue2); //--输出2009-03-17 16:50:49.920
string lastUpdate3 = objValue2 == null ? string.Empty : string.Format("{0:yyyy-MM-dd hh:mm:ss.fff}", objValue2); //--输出2009-03-17 04:50:49.920

//--------------------
y 将指定 DateTime 对象的年份部分显示为位数最多为两位的数字。忽略年的前两位数字。如果年份是一位数字 (1-9),则它显示为一位数字。
yy 将指定 DateTime 对象的年份部分显示为位数最多为两位的数字。忽略年的前两位数字。如果年份是一位数字 (1-9),则将其格式化为带有前导 0 (01-09)。
yyyy 显示指定 DateTime 对象的年份部分(包括世纪)。如果年份长度小于四位,则按需要在前面追加零以使显示的年份长度达到四位。

z 仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导或尾随符号(零显示为“+0”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值的范围是 –12 到 +13。如果偏移量为一位数 (0-9),则将其显示为带合适前导符号的一位数。该时区的设置指定为 +X 或 –X,其中 X 是相对 GMT 以小时为单位的偏移量。所显示的偏移量受夏时制的影响。
zz 仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导或尾随符号(零显示为“+00”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值范围为 –12 到 +13。如果偏移量为单个数字 (0-9),则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。该时区的设置指定为 +X 或 –X,其中 X 是相对 GMT 以小时为单位的偏移量。所显示的偏移量受夏时制的影响。
zzz, zzz(外加任意数量的附加“z”字符)以小时和分钟为单位显示系统当前时区的时区偏移量。偏移量总是显示为带有前导或尾随符号(零显示为“+00:00”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时和分钟数。值范围为 –12 到 +13。如果偏移量为单个数字 (0-9),则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。该时区的设置指定为 +X 或 –X,其中 X 是相对 GMT 以小时为单位的偏移量。所显示的偏移量受夏时制的影响。

: 时间分隔符。
/ 日期分隔符。
" 带引号的字符串。显示转义符 (/) 之后两个引号之间的任何字符串的文本值。 
' 带引号的字符串。显示两个“'”字符之间的任何字符串的文本值。
%c 其中 c 是标准格式字符,显示与格式字符关联的标准格式模式。
\c 其中 c 是任意字符,转义符将下一个字符显示为文本。在此上下文中,转义符不能用于创建转义序列(如“\n”表示换行)。
任何其他字符 其他字符作为文本直接写入输出字符串。

向 DateTime.ToString 传递自定义模式时,模式必须至少为两个字符长。如果只传递“d”,则公共语言运行库将其解释为标准格式说明符,这是因为所有单个格式说明符都被解释为标准格式说明符。如果传递单个“h”,则引发异常,原因是不存在标准的“h”格式说明符。若要只使用单个自定义格式进行格式化,请在说明符的前面或后面添加一个空格。例如,格式字符串“h”被解释为自定义格式字符串。

下表显示使用任意值 DateTime.Now(该值显示当前时间)的示例。示例中给出了不同的区域性和时区设置,以阐释更改区域性的影响。可以通过下列方法更改当前区域性:更改 Microsoft Windows 的“日期/时间”控制面板中的值,传递您自己的 DateTimeFormatInfo 对象,或将 CultureInfo 对象设置传递给不同的区域性。此表是说明自定义日期和时间说明符如何影响格式化的快速指南。请参阅该表下面阐释这些说明符的代码示例部分。

格式说明符 当前区域性 时区 输出
d, M en-US GMT 12, 4
d, M es-MX GMT 12, 4
d MMMM en-US GMT 12 April
d MMMM es-MX GMT 12 Abril
dddd MMMM yy gg en-US GMT Thursday April 01 A.D.
dddd MMMM yy gg es-MX GMT Jueves Abril 01 DC
h , m: s en-US GMT 6 , 13: 12
hh,mm:ss en-US GMT 06,13:12
HH-mm-ss-tt en-US GMT 06-13-12-AM
hh:mm, G\MT z  en-US GMT 05:13 GMT +0
hh:mm, G\MT z  en-US GMT +10:00 05:13 GMT +10
hh:mm, G\MT zzz en-US GMT 05:13 GMT +00:00

由freemarker毫秒级时间谈固定日期格式相关推荐

  1. 在hive中对日期数据进行处理,毫秒级时间转化为yyyy-MM-dd格式

    我们看到日志的时间是1414381913000 ,我们在需求中需要对每天的数据进行分析,所以需要对这个日志数据进行转化格式. 常用时间类型格式转换: from_unixtime(bigint unix ...

  2. Pandas 毫秒级时间解析

    Pandas 毫秒级时间解析 创建一个DataFrame 测试数据 pandas 读取中 read_csv( parse_dates=['**']) 参数 pandas自带 to_datetime() ...

  3. mysql添加毫秒级时间

    mysql添加毫秒级时间 需求描述: mysql插入数据默认时间只到秒,如果同时插入多条数据,order by 排序,顺序有可能错乱 解决方法: 将数据插入时间粒度增加到纳秒,区分入库先后,从而达到排 ...

  4. android显示二维毫秒,Android 悬浮窗显示毫秒级时间

    Android 悬浮窗显示毫秒级时间Android 悬浮窗显示毫秒级时间. 运行效果如下: 1.新建工程"FloatWindowDemo2", 工程如下: 2. "Mai ...

  5. android显示二维毫秒,Android应用开发Android 悬浮窗显示毫秒级时间

    本文将带你了解Android应用开发Android 悬浮窗显示毫秒级时间,希望本文对大家学Android有所帮助. Android   悬浮窗显示毫秒级时间Android 悬浮窗显示毫秒级时间. 运行 ...

  6. mysql 毫秒比较_MYSQL的毫秒级时间比较问题

    一般来说,MYSQL使用时间比较一般是转换成时间格式来比较,如: DATE_FORMAT('年-月-日 时:分:秒','%Y-%m-%d %h:%i:%s') select DATE_FORMAT(' ...

  7. js时间转换成日期格式 及取当前时间的10分钟之后

    function dataString(d) {let date = new Date(); //1. js获取当前时间let min = date.getMinutes(); //2. 获取当前分钟 ...

  8. oracle的时间各式,Oracle9i日期格式几点说明

    1. 在 Oracle9i 之前, 日期格式的数据类型默认格式为"DD-MON-YY",而在 Oracle9i 中 为了解决千年问题, 而引入了新的日期型格式为"DD-M ...

  9. mysql.h函数解释_mysql时间格式化函数日期格式h和H区别

    本文为博主原创,未经允许不得转载: 今天碰到一个问题,发现项目中有一个统计图的数据和时间格式没有对应准确,统计图要描述的是操作次数和操作时间的关系, 但很奇怪的是操作次数对应的时间却是凌晨,实际应用中 ...

最新文章

  1. 高效JQuery编码
  2. 弃 Windows 而拥抱 Linux 之后,这本书教了新玩法
  3. Zabbix实战之客户端自动注册
  4. java线程同步barrier_Java多线程同步工具类之CyclicBarrier
  5. Yoshua Bengio等大神传授:26条深度学习经验
  6. 如何创建生成非 MFC 项目的自定义 AppWizards
  7. HTMl文件的阶层架构 访问父元素和子元素
  8. count(1)、count(*)、count(字段)的区别
  9. git相关常用基本用法命令及分支操作指南命令
  10. ASP.NET C#读写Cookie的方法!
  11. Cacti auth.php,Liunx运维监控_shark巨菜_cacti篇
  12. armbian格式化磁盘命令,甜糖格式化磁盘
  13. 三菱FX系列PLC教程
  14. 2016/11/23【转载3】USB OTG 引脚定义
  15. Mysql中select into from用法
  16. 华东师范大学副校长周傲英:数据赋能,从数据库到数据中台
  17. Pycharm远程调试踩坑:[Errno 2] No such file or directory Process finished with exit code 2
  18. 吴恩达深度学习笔记(40)-指数加权平均数优化算法
  19. dede后台系统基本参数空白怎么办
  20. 根据手机的分辨率和屏幕尺寸计算手机屏幕的PPI

热门文章

  1. Python使用pngquant实现批量压缩图片
  2. 第一次尝试使Windows Live Writer发布日志
  3. 行列式怎样用计算机算,行列式计算器怎么样?行列式计算器如何使用?
  4. 【蛮力算法】数据结构与算法
  5. openstack框架搭建云计算平台和各组件运维内容包括mysql、keyston、Glance、Nova、Neutron、Dashboard、Heat、Trove、Ceilometer运维
  6. VUE优秀UI组件库(PC和Mobile)
  7. Python:游戏:测试打字速度
  8. 收费变免费,是商业模式的颠覆式创新
  9. debian详细安装
  10. 腾讯AI Lab发布智能创作助手「文涌 (Effidit)」,用技术助力「文思泉涌」