DataTime显示格式【转】
随心所欲的DateTime显示格式
任何项目,难免会碰到DateTime的显示问题,.net框架虽提供丰富多样的显示方法,但我很少使用,因老忘记细节,每次都要纠结到底月份在前还是年份在前;日期分隔符到底是“/”,还是“\”,还是“-”等等。

因此,每逢日期显示,我的写法通常类似下面代码所示,这样能根据需求取舍,随心所欲的控制显示格式、顺序,也不用纠结分隔符到底是什么了,且ToString方法中,每个字符表示对应单词的首字母,并不难记。
dt.ToString("yyyy-MM-dd hh:mm:ss tt zz"); // 2012-12-06 01:19:00 PM +08
- y : 年
- M : 月
- d:日
- h或H:小时
- m:分钟
- s:秒
- t:12小时制的上下午(AM/PM)
- z:时区
这些字符大小写敏感,“h”和“H”分别对应12和24小时制时间。由于月-Month和分钟-Minute首字母都是“M”,所以用大小写来区分,大写表月份,小写表分钟。
日和月的多样化显示
有时月份的显示会多种多样,有放开头全英文显示的,有只显示前三个字母的,有放中间用逗号隔开的。而碰到这种情况,我见过有些代码用switch-case依次判断月份来实现,略显麻烦,实际上,上文中的方法稍加改变就可完成。
比如月份,ToString方法中“M”的数量决定显示格式。
dt.ToString("MMM"); // Dec
dt.ToString("MMMM"); // December
同理,代表日的“d”也有同样的特性,不同点是“ddd”和“dddd”表星期而不是几号。
dt.ToString("ddd"); // Thu
dt.ToString("dddd"); // Thursday
不同区域文化的日期
时间显示难免会碰到区域文化的问题,比如运行最开始的例子,“PM”可能会显示为“下午”:
用文字显示月份时,可能会直接显示“十二月”:
dt.ToString("MMM"); // 十二月
dt.ToString("MMMM"); // 十二月
区域文化显示不同往往会造成问题,为避免麻烦,就要指定具体的区域文化。一般来说,英文较常用的,指定方式也最简单,使用CultureInfo类的静态属性InvariantCulture即可:
当需要使用其他的区域文化时,就要实例化指定的CultureInfo类,比如下例中分别显示中文、日文、英文的星期:
dt.ToString("dddd", new CultureInfo("ja-JP")); // 木曜日
dt.ToString("dddd", CultureInfo.InvariantCulture); // Thursday
这里用“ja-Jp”表示日文,也可用“ja”。中文显示时,可以指定“zh-TW”来显示繁体字。如果想显示其他区域文化的文字,可以到这个MSDN页面的列表中查找对应字符。
DataTime显示格式【转】的更多相关文章
- Django模版语言 格式化显示 后台datatime()时间
Django模版语言 格式化显示 后台datatime()时间 场景描述:
- 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)
关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...
- iOS设置文字过长时的显示格式
以label为例: //设置文字过长时的显示格式 aLabel.lineBreakMode = UILineBreakModeMiddleTruncation; //截去中间 aLabel.lineB ...
- 关于Web项目里的给表单验证控件添加结束时间不得小于开始时间的验证方法,日期转换和前台显示格式之间,还有JSON取日期数据格式转换成标准日期格式的问题
项目里有些不同页面间的日期显示格式是不同的, 第一个问题: 比如我用日期控件WdatePicker.js导包后只需在input标签里加上onClick="WdatePicker()" ...
- Dev gridView中设置自适应列宽和日期显示格式、金额的显示格式
在Dev GridView控件中,数据库中表数据日期都是长日期格式(yyyy-MM-dd HH:mm:ss),但显示在控件变成短日期格式(yyyy-MM-dd),金额显示要显示精确的数值, 比如80. ...
- C#自定义时间显示格式
string time = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); 下面是常见的一些日期时间显示格式 标准的For ...
- 时间类型(DataTime)赋空值
暂时只发现这一个方法 如果直接Datetime time=DBNull.Value;会报null与DataTime没有隐式转换 SqlCommand cmd = SqlCommand(conn); / ...
- 随心所欲的DateTime显示格式
任何项目,难免会碰到DateTime的显示问题,.net框架虽提供丰富多样的显示方法,但我很少使用,因老忘记细节,每次都要纠结到底月份在前还是年份在前:日期分隔符到底是“/”,还是“\”,还是“-”等 ...
- 数据库里面DataTime时间类型字段,如果为null时
tran.TransactionTime = bet.CreationDate.ToString() == "0001/1/1 0:00:00" ? DateTime.Now : ...
随机推荐
- 服务端技术进阶(一)web项目的部署(发布)流程
web项目的部署(发布)流程 在myeclipse下新建web工程abc.系统设置默认如下: 项目保存位置:workspace目录\abc.Source文件夹:src,保存所有的java类文件(.ja ...
- PDA智能设备解决方案打包及部署
演练:打包智能设备解决方案以便进行部署 Visual Studio 2008 本演练演示如何使用 Visual Studio 将应用程序及其资源打包到一个 CAB 文件中,以便可将其部署到最终用户的智 ...
- 1.Linux下libevent和memcached安装
1 下载libevent-2.0.22-stable.tar.gz,下载地址是:http://libevent.org/ 2 下载memcached,下载地址是:http://memcached ...
- 《java入门第一季》二维数组三个案例详解
案例一:遍历二维数组 /* 需求:二维数组遍历 外循环控制的是二维数组的长度,其实就是一维数组的个数行数. 内循环控制的是一维数组的长度,每一行,一维数组元素分别的个数. */ class Array ...
- 【Visual C++】游戏编程学习笔记之五:单一背景滚动
本系列文章由@二货梦想家张程 所写,转载请注明出处. 本文章链接:http://blog.csdn.net/terence1212/article/details/44224963 作者:ZeeCod ...
- DB 查询分析器 6.03 在Windows 8 上安装与运行演示
DB 查询分析器 6.03 在Windows 8 上安装与运行演示 马根峰 ( 广东联合电子服务股份有限公司, 广州 510300) 摘要 ...
- 网站开发进阶(十二)JS实现打印功能(包括打印预览、打印设置等)
JS实现打印功能(包括打印预览.打印设置等) 绪 最近在进行项目开发时,需要实现后台管理端打印功能,遂在网上一阵搜索,搜到了很多相关的文章.其中绝大部分文章都是使用的Lodop5.0(Web打印和套打 ...
- LeetCode之“字符串”:ZigZag Conversion
题目链接 题目要求: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of ...
- Linux变量内容的删除、取代与替换
变量内容的删除与取代 范例一:先让小写的 path 自定义变量配置的与 PATH 内容相同 [root@www ~]# path=${PATH} [root@www ~]# echo $path /u ...
- HBase rest
HBase Rest 是建立在HBase java 客户端基础之上的,提供的web 服务.它存在的目的是给开发者一个更多的选择. 1.启动rest 服务 (1)hbase rest start 用默认 ...