C# 学习笔记(二) 时间格式化字符串
1. 以下4种时间格式化符号输出的固定时间格式在各个区域设置中都应是相同的:
| 标准格式字符串 | 由 DateTimeFormatInfo.InvariantInfo 属性定义 | 自定义格式字符串 |
| “O”或“o” | 无 | yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz |
| “R”或“r” | RFC1123Pattern | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' |
| “s” | SortableDateTimePattern | yyyy'-'MM'-'dd'T'HH':'mm':'ss |
| “u” | UniversalSortableDateTimePattern | yyyy'-'MM'-'dd HH':'mm':'ss'Z' |
2. 通过DateTimeFormatInfo.GetAllDateTimePatterns(char)函数可以得到与标准格式化字符串对应的自定义格式字符串。
using System;
using System.Globalization; public class Example
{
public static void Main()
{
Console.WriteLine("'d' standard format string:");
foreach (var customString in DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d'))
//输出与“d"标准格式化字符对应的自定义格式化字符串
Console.WriteLine(" {0}", customString);
}
}
3. “d”标准格式说明符表示通过特定区域性的 DateTimeFormatInfo.ShortDatePattern 属性定义的自定义日期和时间格式字符串。
4. “D”标准格式说明符表示由当前的 DateTimeFormatInfo.LongDatePattern 属性定义的自定义日期和时间格式字符串。
5. “f”标准格式说明符表示长日期(“D”)和短时间(“t”)模式的组合,由空格分隔。
6. “F”标准格式说明符表示由当前的 DateTimeFormatInfo.FullDateTimePattern 属性定义的自定义日期和时间格式字符串。
7. “g”标准格式说明符表示短日期(“d”)和短时间(“t”)模式的组合,由空格分隔。
8. “G”标准格式说明符表示短日期(“d”)和长时间(“T”)模式的组合,由空格分隔。
9. “M”或“m”标准格式说明符表示由当前的 DateTimeFormatInfo.MonthDayPattern 属性定义的自定义日期和时间格式字符串。
10. “O”或“o”标准格式说明符表示使用保留时区信息的模式的自定义日期和时间格式字符串,并发出符合 ISO8601 的结果字符串。
1. 对于 DateTime 值,“O”或“o”标准格式说明符对应于“yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK”自定义格式字符串,对于 DateTimeOffset 值,“O”或“o”标准格式说明符则对应于“yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz”自定义格式字符串。
2. “O”或“o”标准格式说明符(和“yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK” 自定义格式字符串)利用 ISO 8601 表示时区信息的三种方式来保留 Kind 值的 DateTime 属性:
1. DateTimeKind.Local 日期和时间值的时区组件是相对于 UTC 的偏移量(例如,+01:00,-07:00)。 所有 DateTimeOffset 值也以这种格式表示。
2. DateTimeKind.Utc 日期和时间值的时区组件使用“Z”(它代表零偏移量)以表示 UTC。
3. DateTimeKind.Unspecified 日期和时间值没有时区信息。
3. 注意,如果你使用对应于“O”或“o”格式说明符的自定义格式字符串调用分析方法,则你不会获得与“O”或“o”相同的结果。 这是因为使用自定义格式字符串的分析方法不能分析缺少时区组件的日期和时间值的字符串表示形式,或使用“Z”指示 UTC
11. “R”或“r”标准格式说明符表示由 DateTimeFormatInfo.RFC1123Pattern 属性定义的自定义日期和时间格式字符串。 该模式反映已定义的标准,并且属性是只读的。 因此,无论所使用的区域性或所提供的格式提供程序是什么,它总是相同的。 定义格式字符串为“ddd, dd MMM yyyy HH':'mm':'ss 'GMT'”。 当使用此标准格式说明符时,格式设置或分析操作始终使用固定区域性。
12. “s”标准格式说明符表示由 DateTimeFormatInfo.SortableDateTimePattern 属性定义的自定义日期和时间格式字符串。 该模式反映已定义的标准 (ISO 8601),并且属性是只读的。 因此,无论所使用的区域性或所提供的格式提供程序是什么,它总是相同的。 自定义格式字符串为“yyyy'-'MM'-'dd'T'HH':'mm':'ss”。
13. “t”标准格式说明符表示由当前的 DateTimeFormatInfo.ShortTimePattern 属性定义的自定义日期和时间格式字符串。 例如,用于固定区域性的自定义格式字符串为“HH:mm”。
14. “T”标准格式说明符表示由特定区域性的 DateTimeFormatInfo.LongTimePattern 属性定义的自定义日期和时间格式字符串。 例如,用于固定区域性的自定义格式字符串为“HH:mm:ss”。
15. “u”标准格式说明符表示由 DateTimeFormatInfo.UniversalSortableDateTimePattern 属性定义的自定义日期和时间格式字符串。 该模式反映已定义的标准,并且属性是只读的。 因此,无论所使用的区域性或所提供的格式提供程序是什么,它总是相同的。 自定义格式字符串为“yyyy'-'MM'-'dd HH':'mm':'ss'Z'”。 当使用此标准格式说明符时,格式设置或分析操作始终使用固定区域性。
16. “U”标准格式说明符表示由特定区域性的 DateTimeFormatInfo.FullDateTimePattern 属性定义的自定义日期和时间格式字符串。 此模式与“F”模式相同。 但是,在对 DateTime 值进行格式设置之前,该值自动转换为 UTC。
C# 学习笔记(二) 时间格式化字符串的更多相关文章
- redis 学习笔记二 (简单动态字符串)
redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来 ...
- ECharts实例开发学习笔记二——时间轴
记录一下ECharts时间轴的使用,首先是照着官方的示例做一遍,在这里不要忘了引入timelineOption.js,后面介绍如何动态创建时间轴的记录数,即根据需求可伸缩显示有多少天或者年月等轴标记数 ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- JDBC学习笔记二
JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
随机推荐
- Reddit CEO亲自诠释内容审核的无奈
本文由 网易云发布. 导语:继数据泄露危机之后,Facebook将会雇用数千名新员工来负责新的验证系统,这个系统将首先在美国广告客户中生效,并将在未来几个月内涵盖其他国家.与此同时,如何让自己的社区 ...
- TCP BBR - 一键安装最新内核并开启 TCP BBR
原文地址: https://teddysun.com/489.html 最近,Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经 ...
- 微信小程序 Unexpected end of JSON input/Unexpected token o in JSON at position 1
原因JSON.parse无法识别某些url中的特殊字符,所以报错 mistakes.js中 nextBtn:function(){ var nextData = this.data.dataNextI ...
- 前端入门html(常用标签及标签分类)
day47 参考:https://www.cnblogs.com/liwenzhou/p/7988087.html 任何标签都有有三个属性:ID,class.style <!DOCTYPE ht ...
- 原来css也可以计算-calc()使用
在浏览其他人的源代码时,看到了一个陌生的属性:width:calc(100% - 10px -10px); 出于好奇心,百度了一下,看到了以下这篇文章,http://www.w3cplus.com/c ...
- php5数组与php7数组区别
http://ju.outofmemory.cn/entry/197064 http://www.fzb.me/2015-9-16-php7-implementation-hashtable.html ...
- H02-启动hdfs时可能遇到的几个问题
启动hdfs时,有时候可能会遇到这样几种情况: 1)在主节点上执行start-dfs.sh命令启动hdfs,无法启动datanode. 2)在主节点上行启动hdfs,启动成功了,在各个节点上使用jps ...
- 【C#小知识】C#中一些易混淆概念总结(五)---------继承 分类: C# 2014-02-06 22:05 1106人阅读 评论(0) 收藏
目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...
- Android 开发工具类 22_PullPersonService
PULL 解析 XML import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; imp ...
- Android 开发工具类 02_DensityUtils
常用单位转换的辅助类: 1.dp 转 px: 2.sp 转 px: 3.px 转 dp: 4.px 转 sp. import android.content.Context; import andro ...