今天恰好周末有时间打点自己的小站看到别人都使用了站点地图我也不能落后于是按照网上说的下载了几个工具可是发现并是很适合自己的站于是想到了自己写代码生成站点地图好一切进展顺利几小时后将自己用ASPNET生成的站点地图提交给Google没想到被警告了只因为时间格式问题于是找资料转换时间格式终于通过了验收!足见时间格式在某些场合的重要性有时候我们要对时间进行转换达到不同的显示效果
默认格式为: ::
如果要换成成或更多的该怎么办呢
我们要用到ateTimeToString的方法(String IFormatProvider)
using System;
using SystemGlobalization;
String format=D;
DateTime date=DataTimeNow;
ResponseWrite(dateToString(format DateTimeFormatInfoInvariantInfo));
结果输出
Thursday June
参数format格式详细用法
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
mM MonthDayPattern
rR RFCPattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO )
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
yY YearmonthPattern
下表列出了可被合并以构造自定义模式的模式这些模式是区分大小写的例如识别MM但不识别mm如果自定义模式包含空白字符或用单引号括起来的字符则输出字符串页也将包含这些字符未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制
格式模式 说明
d 月中的某一天一位数的日期没有前导零
dd 月中的某一天一位数的日期有一个前导零
ddd 周中某天的缩写名称在 AbbreviatedDayNames 中定义
dddd 周中某天的完整名称在 DayNames 中定义
M 月份数字一位数的月份没有前导零
MM 月份数字一位数的月份有一个前导零
MMM 月份的缩写名称在 AbbreviatedMonthNames 中定义
MMMM 月份的完整名称在 MonthNames 中定义
y 不包含纪元的年份如果不包含纪元的年份小于 则显示不具有前导零的年份
yy 不包含纪元的年份如果不包含纪元的年份小于 则显示具有前导零的年份
yyyy 包括纪元的四位数的年份
gg 时期或纪元如果要设置格式的日期不具有关联的时期或纪元字符串则忽略该模式
h 小时制的小时一位数的小时数没有前导零
hh 小时制的小时一位数的小时数有前导零
H 小时制的小时一位数的小时数没有前导零
HH 小时制的小时一位数的小时数有前导零
m 分钟一位数的分钟数没有前导零
mm 分钟一位数的分钟数有一个前导零
s 秒一位数的秒数没有前导零
ss 秒一位数的秒数有一个前导零
f 秒的小数精度为一位其余数字被截断
ff 秒的小数精度为两位其余数字被截断
fff 秒的小数精度为三位其余数字被截断
ffff 秒的小数精度为四位其余数字被截断
fffff 秒的小数精度为五位其余数字被截断
ffffff 秒的小数精度为六位其余数字被截断
fffffff 秒的小数精度为七位其余数字被截断
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)
z 时区偏移量(+或后面仅跟小时)一位数的小时数没有前导零例如太平洋标准时间是
zz 时区偏移量(+或后面仅跟小时)一位数的小时数有前导零例如太平洋标准时间是
zzz 完整时区偏移量(+或后面跟有小时和分钟)一位数的小时数和分钟数有前导零例如太平洋标准时间是:
: 在 TimeSeparator 中定义的默认时间分隔符
/ 在 DateSeparator 中定义的默认日期分隔符
% c 其中 c 是格式模式(如果单独使用)如果格式模式与原义字符或其他格式模式合并则可以省略%字符
\ c 其中 c 是任意字符照原义显示字符若要显示反斜槓字符请使用\\
只有上面第二个表中列出的格式模式才能用于创建自定义模式在第一个表中列出的标准格式字符不能用于创建自定义模式自定义模式的长度至少为两个字符例如
DateTimeToString( d 返回 DateTime 值d是标准短日期模式
DateTimeToString( %d 返回月中的某天%d是自定义模式
DateTimeToString( d 返回后面跟有一个空白字符的月中的某天d是自定义模式
比较方便的是上面的参数可以随意组合并且不会出错多试试肯定会找到你要的时间格式
如要得到年月 这样格式的时间
可以这样写:
dateToString(yyyy年MM月 DateTimeFormatInfoInvariantInfo)
还例如QQ邮箱的时间年月日(星期五) 下午:
dateToString(yyyy年MM月(星期ddd)HH:mm);