随心所欲的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页面的列表中查找对应字符。
随心所欲的DateTime显示格式的更多相关文章
- .NET DateTime 显示格式
备注 format 参数应包含单个格式说明符 (请参阅 标准日期和时间格式字符串) 或自定义格式模式 (请参阅 Cadenas con formato de fecha y hora pers ...
- DataTime显示格式【转】
随心所欲的DateTime显示格式 任何项目,难免会碰到DateTime的显示问题,.net框架虽提供丰富多样的显示方法,但我很少使用,因老忘记细节,每次都要纠结到底月份在前还是年份在前:日期分隔符到 ...
- DateTime用法二
任何项目,难免会碰到DateTime的显示问题,.net框架虽提供丰富多样的显示方法,但我很少使用,因老忘记细节,每次都要纠结到底月份在前还是年份在前:日期分隔符到底是“/”,还是“\”,还是“-”等 ...
- MySQL中DATETIME、DATE和TIMESTAMP类型的区别
一.TIMESTAMP 显示格式:YYYY-MM-DD HH:MM:SS 时间范围:[ '1970-01-01 00:00:00'到'2037-12-31 23:59:59'] TIMESTAMP D ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- mysql支持的数据类型及其测试
原文:mysql支持的数据类型及其测试 1.基础知识 1.1如何来查看mysql的帮助手册 ?int Help float; 1.2创建表的规则 CREATE TABLE [IF NOT EXISTS ...
- MySQL学习分享-->日期时间类型
日期时间类型 ①如果要用来表示年月日时分秒,一般使用datetime类型: ②如果要用来表示年月日,一般使用date类型: ③如果要表示时分秒,一般使用time类型: ④如果只是表示年份,一般使用ye ...
- mysql中data和datatime的区别
1.显示格式的区别 Date显示格式:YYYY-MM-DD:DateTime显示格式:YYYY-MM-DD HH:mm:ss. 2.显示范围的区别 Date显示范围是1601-01-01 到 9999 ...
随机推荐
- python学习笔记22(group)
正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a = "123abc456" print re.search("([0-9]*) ...
- AFNetworking 简单应用
最近最学习 AFNetworking ,根据自己所学对 AFNetWorking 一些简单应用做了一下简单封装,主要有 get,post形式获取 xml,json,get 方式获取图片,下载文件,上传 ...
- 1040: [ZJOI2008]骑士 - BZOJ
Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火 ...
- 30分钟让你了解MongoDB基本操作
今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...
- 团体程序设计天梯赛-练习集L1-014. 简单题
L1-014. 简单题 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 这次真的没骗你 —— 这道超级简单的题目没有任何输入. ...
- Good Bye 2015B
Problem B:http://codeforces.com/contest/611/problem/B B. New Year and Old Property 题意:问输入的年份a到b中转化为二 ...
- uva 437 hdu 1069
dp 将石块按三个面存入队列 按底面积排序 dp就最大高度 按嵌套矩形最长路做做法 #include <iostream> #include <cstdio> #inc ...
- Eclipse 调整代码颜色的地方
Editors - Text Editors General-Apperance-Colors and Fonts 各工作区里面的Editor和Syntax Coloring
- Titan DB的一些问题
使用熟悉一点的系统来测试TitanDB,HBASE+ES,记录下来一些小tips. 1.首先TitanDB支持的Hadoop只有1.2.1,所以Hbase自然也只能取到0.98,虽然官网上提供了tit ...
- WebViewJavascriptBridge的基本原理
前言 WebViewJavascriptBridge是支持到iOS6之前的版本的,用于支持native的iOS与javascript交互.如果需要支持到iOS6之前的app,使用它是很不错的.本篇讲讲 ...