admin 管理员组

文章数量: 887021


2024年1月14日发(作者:好程序员培训)

实例:

用户输入一个日期,要求输出这个日期是星期几和在这一年中的第几天:

//声明一个DateTime类型的变量用于存放用户输入的日期

DateTime dt;

ine("请输入日期:(例如:2000-01-01 或 2000/01/01)");

//把输入的日期字符串转换成日期格式类型

dt = (ne());

//因为DayOfWeek返回的是0、1、2、3、4、5、6,分别对应的是日、一、二、三、四、五、六

//Substring是进行检索字符串并返回匹配的指定长度的子字符串

string str = "日一二三四五六".Substring((int)eek, 1);

ine("{0}年{1}月{2}日是星期{3}", , , , str);

ine("{0}年{1}月{2}日是这一年的第{3}天", , ,

, ear);

ine("{0}是星期{1}", tDateString(), str);

ine("{0}是这一年的第{1}天", DateString(),

ear);

上述代码运行的结果如下

显示当前时期和时间的不同合格:

//以不同的格式显示当天日期和时间

ine("现在时间是:{0}", ng("yyyy-M-d

H:m:s"));

ine("现在时间是:{0}", ng("yyyy-MM-dd

HH:mm:ss"));

ine("现在时间是:{0}",

ng("yyyy-MM-dd"));

ine("短日期字符串表示现在时间是:{0}",

tDateString());

ine("长日期字符串表示现在时间是:{0}",

DateString ());

上述代码的运行结果如下

日期类型(DateTime)格式化

方法一:

使用ng(format, antInfo)

示例代码:

DateTime

dt = ;

ng("M/d/yyyy");

参数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

下面列出可被合并以构造自定义模式的模式:

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 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“”。

方法二:

DateTimedt = ;

= ng();//2005-11-5 13:21:25

= lTime().ToString();//2005-11-5 21:21:25 =

DateString().ToString();//2005年11月5日 =

TimeString().ToString();//13:21:25

ng();//2005-11-5 13:21:25

Time().ToString();//9912816

TimeUtc().ToString();//1277567

lTime().ToString();//2005-11-5 21:21:25

DateString().ToString();//2005年11月5日

TimeString().ToString();//13:21:25

te().ToString();//38661.5565508218

tDateString().ToString();//2005-11-5

tTimeString().ToString();//13:21

ersalTime().ToString();//2005-11-5 5:21:25

ng();//2005

ng();//2005-11-5 0:00:00

ng();//Saturday

ng();//309

ng();//13

ng();//441

ng();//30

ng();//11

ng();//28

ng();//632667942284412864

ng();//13:30:28.4412864

ng();//2005-11-5 13:47:04

rs(1).ToString();//2006-11-5 13:47:04

s(1.1).ToString();//2005-11-6 16:11:04

rs(1.1).ToString();//2005-11-5 14:53:04

liseconds(1.1).ToString();//2005-11-5 13:47:04

ths(1).ToString();//2005-12-5 13:47:04

onds(1.1).ToString();//2005-11-5 13:47:05

utes(1.1).ToString();//2005-11-5 13:48:10

ks(1000).ToString();//2005-11-5 13:47:04

eTo(dt).ToString();//0

(?).ToString();//问号为一个时间段

("2005-11-6 16:11:04").ToString();//False

(dt).ToString();//True

hCode().ToString();//1474088234

e().ToString();//me

eCode().ToString();//DateTime

eTimeFormats('s')[0].ToString();//2005-11-05T14:06:25

eTimeFormats('t')[0].ToString();//14:06

eTimeFormats('y')[0].ToString();//2005年11月

eTimeFormats('D')[0].ToString();//2005年11月5日

eTimeFormats('D')[1].ToString();//2005 11 05

eTimeFormats('D')[2].ToString();//星期六2005 11 05

eTimeFormats('D')[3].ToString();//星期六2005年11月5日

eTimeFormats('M')[0].ToString();//11月5日

eTimeFormats('f')[0].ToString();//2005年11月5

datetime 操作

//今天

tDateString();

//昨天,就是今天的日期减一

s(-1).ToShortDateString();

//明天,同理,加一

s(1).ToShortDateString();

//本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止

s(le((0 -

16(eek)))).ToShortDateString();

s(le((6 -

16(eek)))).ToShortDateString();

//如果你还不明白,再看一下中文显示星期几的方法就应该懂了

//由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的

string[] Day = new string[]{ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",

"星期六" };

Day[16(eek)];

//上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样

s(le((0 -

16(eek))) - 7).ToShortDateString();

s(le((6 -

16(eek))) - 7).ToShortDateString();

//下周

s(le((0 -

16(eek))) + 7).ToShortDateString();

s(le((6 -

16(eek))) + 7).ToShortDateString();

//本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的

//一般的写法

ng() + ng() + "1"; //第一天

(ng() + ng() +

"1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天

//巧用C#里ToString的字符格式化更简便

ng("yyyy-MM-01");

(ng("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();

//上个月,减去一个月份

(ng("yyyy-MM-01")).AddMonths(-1).ToShortDateString();

(ng("yyyy-MM-01")).AddDays(-1).ToShortDateString();

//下个月,加去一个月份

(ng("yyyy-MM-01")).AddMonths(1).ToShortDateString();

(ng("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();

//7天后

tDateString();

s(7).ToShortDateString();

//7天前

s(-7).ToShortDateString();

tDateString();

//本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天

(ng("yyyy-01-01")).ToShortDateString();

(ng("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();

//上年度,不用再解释了吧

(ng("yyyy-01-01")).AddYears(-1).ToShortDateString();

(ng("yyyy-01-01")).AddDays(-1).ToShortDateString();

//下年度

(ng("yyyy-01-01")).AddYears(1).ToShortDateString();

(ng("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();

//本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月

//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了

ths(0 - (( - 1) %

3)).ToString("yyyy-MM-01");

//同理,本季度的最后一天就是下季度的第一天减一

(ths(3 - (( - 1) %

3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

//下季度,相信你们都知道了。。。。收工

ths(3 - (( - 1) %

3)).ToString("yyyy-MM-01");

(ths(6 - (( - 1) %

3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

//上季度

ths(-3 - (( - 1) %

3)).ToString("yyyy-MM-01");

(ths(0 - (( - 1) %

3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();


本文标签: 时间 格式 字符 前导 字符串