DateTime用法二

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

因此,每逢日期显示,我的写法通常类似下面代码所示,这样能根据需求取舍,随心所欲的控制显示格式、顺序,也不用纠结分隔符到底是什么了,且ToString方法中,每个字符表示对应单词的首字母,并不难记。

DateTime dt=new DateTime(2012,12,6,13,19,0);
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("MM");   // 12
dt.ToString("MMM");  // Dec
dt.ToString("MMMM"); // December

同理,代表日的“d”也有同样的特性,不同点是“ddd”和“dddd”表星期而不是几号。

dt.ToString("dd");   // 06
dt.ToString("ddd");  // Thu
dt.ToString("dddd"); // Thursday

不同区域文化的日期

时间显示难免会碰到区域文化的问题,比如运行最开始的例子,“PM”可能会显示为“下午”:

dt.ToString("yyyy-MM-dd hh:mm:ss tt zz"); // 2012-12-06 01:19:00 下午 +08

用文字显示月份时,可能会直接显示“十二月”:

dt.ToString("MM");   // 12
dt.ToString("MMM");  // 十二月
dt.ToString("MMMM"); // 十二月

区域文化显示不同往往会造成问题,为避免麻烦,就要指定具体的区域文化。一般来说,英文较常用的,指定方式也最简单,使用CultureInfo类的静态属性InvariantCulture即可:

dt.ToString("yyyy-MM-dd hh:mm:ss tt zz", CultureInfo.InvariantCulture); // 2012-12-06 01:19:00 PM +08

当需要使用其他的区域文化时,就要实例化指定的CultureInfo类,比如下例中分别显示中文、日文、英文的星期:

dt.ToString("dddd");                                // 星期四
dt.ToString("dddd", new CultureInfo("ja-JP"));      // 木曜日
dt.ToString("dddd", CultureInfo.InvariantCulture);  // Thursday

这里用“ja-Jp”表示日文,也可用“ja”。中文显示时,可以指定“zh-TW”来显示繁体字。如果想显示其他区域文化的文字,可以到这个MSDN页面的列表中查找对应字符

时间: 2024-10-10 08:40:43

DateTime用法二的相关文章

Java关于Properties用法(二)——替换配置文件中的参数

上一章讲了配置文件的基本用法,虽然上一章已经可以解决一些需求,但还不些不足之处.假如,配置文件里面的字符串有一部分需要经常变动,另外一些不需要,上一章的方法就不方便了,所以这章主要讲如何在配置文件中使用参数,然后替换字符串里面的参数值. 一.使用类MessageFormat替换配置文件中的参数 MessageFormat 提供了以与语言无关方式生成连接消息的方式.使用此方法构造向终端用户显示的消息. MessageFormat 获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适

C#时间格式化(Datetime)用法详解

Datetime.ToString(String, IFormatProvider) 参数format格式详细用法: 格式字符 关联属性/说明 d ShortDatePattern D LongDatePattern f 完整日期和时间(长日期和短时间) F FullDateTimePattern(长日期和长时间) g 常规(短日期和短时间) G 常规(短日期和长时间) m.M MonthDayPattern r.R RFC1123Pattern s 使用当地时间的 SortableDateTi

awk用法(二) ---程序语言特性

1 内建变量(built-in) 常用 FS   输入字段分隔符  默认空白 由选项 -F 改变 或者重新赋值FS OFS  输出字段分隔符  默认空格,改变可以重新赋值 FILEWIDTHS   由空格隔开iade定义了每个字段的宽度,即取代FS 有字段长度来决定如何分割字段的 FNR 当前数据文件中的数据行数 NR 数据文件中的字段总数 NF 已处理的输入数据行数目 实例一 : FS与OFS的用法 [[email protected] ~]# echo  "data1,date2,date3

Linux九阴真经之九阴白骨爪残卷5(ansible用法二之Playbook和YAML语法)

playbook是由一个或多个"play"组成的列表 play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲,所谓task无非是调用ansible的module.将多个play组织在一个playbook中,即可让他们联通起来按事先编排的机制运行. Playbook 采用yaml 语言编写每一个ansible 的 playbook 都是一个yaml格式的文件,因此要学习编写剧本(playbook), 我们先来了解 yaml 语法的基

javaweb学习总结二十六(response对象的用法二 下载文件)

一:浏览器打开服务器上的文件 1:读取服务器上面的资源,如果在web层,可以直接使用servletContext,如果在非web层 可以使用类加载器读取文件 2:向浏览器写数据,实际上是把数据封装到response对象上,然后服务器发现response中响应 体中有数据绑定,然后写给浏览器 3:设置响应头,控制浏览器的读取或者解析方式 如下:打开服务器上的图片 1 /**在页面上查看图片*/ 2 private void viewImage(HttpServletResponse respons

JavaScript高级用法二之内置对象

综述 本篇的主要内容来自慕课网,内置对象,主要内容如下 1 什么是对象 2 Date 日期对象 3 返回/设置年份方法 4 返回星期方法 5 返回/设置时间方法 6 String 字符串对象 7 返回指定位置的字符 8 返回指定的字符串首次出现的位置 9 字符串分割split() 10 提取字符串substring() 11 提取指定数目的字符substr() 12 Math对象 13 向上取整ceil() 14 向下取整floor() 15 四舍五入round() 16 随机数 random(

svnserver详细用法二

局域网访问方式:例如:svn checkout svn://192.168.12.118/fitness --username mirze --password 123456 /var/www/fitness 1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn add t

RemoteViews用法二:可以接收点击事件并改变外观的widget

关于widget简单的用法参考:RemoteViews用法一:widget简单用法 这篇博客完成一个可以接收点击事件并改变外观的widget,并简要总结,最后附上源码下载地址. Demo代码: 1.定义Widget布局XML                     /res/layout/widget_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr

C# DateTime 用法

参见https://msdn.microsoft.com/zh-cn/library/system.datetime%28v=vs.110%29.aspx DateTime.Date:返回实例的日期 DateTime.Day:返回该月中的第几天 DateTime.Now:返回当前时间,精确到秒 DateTime.Today:返回当前时间,精确到天 以DateTime.Now为例,常用的方法有ToBinary(),ToString(),ToString(String),ToShortDateStr