.NET设置⽇期格式转换
.NET设置⽇期格式转换
我们经常会遇到对时间进⾏转换,达到不同的显⽰效果,默认格式为:2006-6-6 14:33:34
如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?
这⾥将要⽤到:DateTime.ToString的⽅法(String, IFormatProvider)
⽰例:
using System;
using System.Globalization;
String format="D";
DateTime date=DataTime.Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2006
在这⾥列出了参数format格式详细⽤法
=======================
格式字符关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整⽇期和时间(长⽇期和短时间)
F FullDateTimePattern(长⽇期和长时间)
g 常规(短⽇期和短时间)
G 常规(短⽇期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使⽤当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern ⽤于显⽰通⽤时间的格式
U 使⽤通⽤时间的完整⽇期和时间(长⽇期和长时间)
y、Y YearMonthPattern
string转date的方法下表列出了可被合并以构造⾃定义模式的模式
========================================
这些模式是区分⼤⼩写的;例如,识别“MM”,但不识别“mm”。如果⾃定义模式包含空⽩字符或⽤单引
号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的⼀部分或未定义为格式字符的字符按其原义复制。
格式模式说明:
d ⽉中的某⼀天。⼀位数的⽇期没有前导零。
dd ⽉中的某⼀天。⼀位数的⽇期有⼀个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd 周中某天的完整名称,在 DayNames 中定义。
M ⽉份数字。⼀位数的⽉份没有前导零。
MM ⽉份数字。⼀位数的⽉份有⼀个前导零。
MMM ⽉份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM ⽉份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份⼩于 10,则显⽰不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份⼩于 10,则显⽰具有前导零的年份。
yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的⽇期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 ⼩时制的⼩时。⼀位数的⼩时数没有前导零。
hh 12 ⼩时制的⼩时。⼀位数的⼩时数有前导零。
H 24 ⼩时制的⼩时。⼀位数的⼩时数没有前导零。
HH 24 ⼩时制的⼩时。⼀位数的⼩时数有前导零。
m 分钟。⼀位数的分钟数没有前导零。
mm 分钟。⼀位数的分钟数有⼀个前导零。
s 秒。⼀位数的秒数没有前导零。
ss 秒。⼀位数的秒数有⼀个前导零。
f 秒的⼩数精度为⼀位。其余数字被截断。
ff 秒的⼩数精度为两位。其余数字被截断。
fff 秒的⼩数精度为三位。其余数字被截断。
ffff 秒的⼩数精度为四位。其余数字被截断。
fffff 秒的⼩数精度为五位。其余数字被截断。
ffffff 秒的⼩数精度为六位。其余数字被截断。
fffffff 秒的⼩数精度为七位。其余数字被截断。
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指⽰项的第⼀个字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指⽰项(如果存在)。
z 时区偏移量(“+”或“-”后⾯仅跟⼩时)。⼀位数的⼩时数没有前导零。例如,太平洋标准时间是“-8”。
zz 时区偏移量(“+”或“-”后⾯仅跟⼩时)。⼀位数的⼩时数有前导零。例如,太平洋标准时间是“-08”。
zzz 完整时区偏移量(“+”或“-”后⾯跟有⼩时和分钟)。⼀位数的⼩时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
: 在 TimeSeparator 中定义的默认时间分隔符。
/ 在 DateSeparator 中定义的默认⽇期分隔符。
% c 其中 c 是格式模式(如果单独使⽤)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
\ c 其中 c 是任意字符。照原义显⽰字符。若要显⽰反斜杠字符,请使⽤“\\”。
只有上⾯第⼆个表中列出的格式模式才能⽤于创建⾃定义模式;在第⼀个表中列出的标准格式字符不能⽤于创建⾃定义模式。⾃定义模式的长度⾄少为两个字符;例如,
DateTime.ToString( "d") 返回 DateTime 值;“d”是标准短⽇期模式。
DateTime.ToString( "%d") 返回⽉中的某天;“%d”是⾃定义模式。
DateTime.ToString( "d ") 返回后⾯跟有⼀个空⽩字符的⽉中的某天;“d”是⾃定义模式。
⽐较⽅便的是,上⾯的参数可以随意组合,并且不会出错,多试试,肯定会到你要的时间格式
如要得到2005年06⽉这样格式的时间
可以这样写:
date.ToString("yyyy年MM⽉", DateTimeFormatInfo.InvariantInfo)
如此类推.
下⾯列出⼀些Asp中具体的⽇期格式化⽤法:
============================================
1.绑定时格式化⽇期⽅法:
<ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " >
<ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE >
</ASP:BOUNDCOLUMN >
2.数据控件如DataGrid/DataList等的件格式化⽇期⽅法:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();
3.⽤String类转换⽇期显⽰格式:
String.Format( "yyyy-MM-dd ",yourDateTime);
4.⽤Convert⽅法转换⽇期显⽰格式:
Convert.ToDateTime("2005-8-23").ToString
("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //⽀持繁体数据库
5.直接⽤ToString⽅法转换⽇期显⽰格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")
6.只显⽰年⽉
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")
7.显⽰时间所有部分,包括:年⽉⽇时分秒
<asp:BoundColumn DataField="收款时间" HeaderText="收款时间"
DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}">
</asp:BoundColumn>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论