在个人重构中,关于时间的格式转换和运算出现的次数还是比较多的,所以今天我们将时间的一些知识学习下。
首先我们先来看下关于时间格式的转换:
时间格式转换的方式有很多,我们这里就直接用ToString方法来转换日期的显示格式:
DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss")
DateTime.Now.ToString("yyyy/MM/dd")
如果我们想得到具体的年月日时分秒就可以用上面的第一个,如果只想得到年月日就用第二个,这个用起来是很简单的,我们现在呢,就将一些常见的格式跟大家总结一下。
d月中的某一天。一位数的日期没有前导零。
dd月中的某一天。一位数的日期有一个前导零。
M月份数字。一位数的月份没有前导零。
MM月份数字。一位数的月份有一个前导零。
y不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy包括纪元的四位数的年份。
h12 小时制的小时。一位数的小时数没有前导零。
hh12 小时制的小时。一位数的小时数有前导零。
H24 小时制的小时。一位数的小时数没有前导零。
HH24 小时制的小时。一位数的小时数有前导零。
m分钟。一位数的分钟数没有前导零。
mm分钟。一位数的分钟数有一个前导零。
s秒。一位数的秒数没有前导零。
ss秒。一位数的秒数有一个前导零。
f秒的小数精度为一位。其余数字被截断。
ff秒的小数精度为两位。其余数字被截断。
t 在AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。
tt 在 AMDesignator 或PMDesignator 中定义的 AM/PM 指示项(如果存在)。
: 在TimeSeparator 中定义的默认时间分隔符。
/ 在DateSeparator 中定义的默认日期分隔符。
我想通过以上的这些知识我们就可以随心所欲的进行时间的转换了。在说完时间的格式转换以后呢,我们接下来看下,关于时间的运算。
时间的运算主要涉及到一个具体函数的应用。
这个函数就是
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
比如说如果我想获得两个时间段strEndDate(结束时间)和strStartDate(开始时间)之间的小时间隔就可以用下面这个算法,但是一定是较早的时间在前,较晚的时间在后,这一点是需要注意的。
strDays =DateDiff("h", strStartDate, strEndDate)
同样的我们不仅可以获取小时间隔,还可以获取天、年、分钟、秒等等。
|
String |
Unit of time difference |
DateInterval.Day |
d |
Day |
DateInterval.DayOfYear |
y |
Day |
DateInterval.Hour |
h |
Hour |
DateInterval.Minute |
n |
Minute |
DateInterval.Month |
m |
Month |
DateInterval.Quarter |
q |
Quarter |
DateInterval.Second |
s |
Second |
DateInterval.Weekday |
w |
Week |
DateInterval.WeekOfYear |
ww |
Calendar week |
DateInterval.Year |
yyyy |
Year |
我想通过以上这些知识,关于时间的转换和运算就再也不会出现问题了。