C#中巧用ToString()将日期转成想要的格式达到不同的显示效果

【菜科解读】
C#时间/日期格式大全,C#时间/日期函数大全
有时候我们要对时间进行转换,达到不同的显示效果
默认格式为:2005-6-6 14:33:34
如果要换成成200506,06-2005,2005-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, 2005
参数format格式详细用法:
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R FC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern
下表列出了可被合并以构造自定义模式的模式。
这些模式是区分大小写的;例如,识别“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)如此类推
到此关于C#中如何格式化输入想要的日期时间格式就都介绍完了。
中,巧用,ToString,将,日期,转成,想,要的,格式,如何在浏览器中调试less&sass
比如把一些功能函数抽出来,单独放一个文件。
页面一般都含有一些公共模块,把模块也可以抽离出来单独存放,等等。
很多同学都已经开始在项目使用less或sass,它们用起来确实是很爽,大大提高效率呀。
less & sass 都无法在浏览器中直接执行,需要变成CSS。
有时候想调试样式,我们看到的行号是css代码的行号,并不能直接对应到less&sass文件中,修改起来总是不方便。
看到less&sass这么受欢迎,热情的开发者们给firefox开发了一个插件FireSass,后来chrome也跟上了,开启一个实验性功能支持sass调试。
具体设置如下:编译时添加参数:sass开启debug-info选项:sass demo.sass demo.css –debug-infoless开启line-numbers:lessc demo.less demo.css –line-numbers=comments这样,编译后的css中将包含调试信息:浏览器设置:firefox执行安装FireSass即可。
chorme:地址栏打开chrome://flags/,启用开发者工具实验(DeveloperToolsexperiments.)。
重启浏览器后,打开开发者工具的设置选项卡,Experiments -> Support for sass 勾选。
最终调试效果: 如,何在,浏览器,中,调试,less,amp,sass,Sa
Javascript中的“作用域链”知识分享
名词解释活动对象:一次函数调用开始的时候,javascript解释器会收集函数体中的所有局部变量(以var形式声明的变量),将这些局部变量存储到一个称为“活动对象”的对象里,所有变量都初始为undefined。
代码示例1 var fun = function(){2 alert(name);3 var name = ‘段光伟‘;4 }当执行这个函数时候时(fun()),函数体还没执行到,当前的活动对象为[{ name: undefined }],因此fun()执行的结果为:函数的[scope]属性:每个函数在定义的时候(生成函数实例的时候)都会分配一个[scope]属性,这个属性指向的当前的“作用域链”。
这个属性开发人员是访问不到的,只有javascript能访问。
作用域链:当函数调用时,javascript引擎会维护一个这次调用的作用域链,这个作用域链条是函数的[scope]指向的作用域链加上函数调用时的活动对象,形式如[ 活动对象, 函数定义时的作用域链条]。
代码示例 1 var a = 1; 2 //步骤1:[ { a: 1, outer: undefined } ] 4 var outer = function(){ 5 //步骤3:[ { b: undefined, inner: undefined } ,{ a: 1, outer: function } ] 6 var b = 2; 7 var inner = function(){ 8 //步骤4:[ {}, { b: 2, inner: function } ,{ a: 1, outer: function } ] 9 return a + b;12 //步骤3:[ { b: 2, inner: function } ,{ a: 1, outer: function } ]13 return inner();16 //步骤2:[ { a: 1, outer: function } ]17 outer();作用域链规则规则1javascript一般运行在一定的宿主中,每个宿主都会提供一个“全局对象”,或者叫“全局活动对象”,这个全局对象是所有作用域链的根节点。
规则2“取值操作”(如:alert(xxxVar))的规则是,沿着作用域链依次查找名称为“xxxVar”的变量,返回第一个找到的值,如果找不到就抛出异常(ReferenceError: xxxVar is not defined)。
规则3“赋值操作”(如:xxxVar = ‘段光伟‘)的规则是,沿着作用域链依次查找名称为“xxxVar”的变量,覆盖第一个找到的值,如果找不到就将“xxxVar”添加到全局对象中。
备注“闭包”这个概念就是通过“作用域链”实现的,而C#是通过编译器实现的,.NET并不支持。
Javascript,中的,“,作用域链,”,知识,分享,代