在个人重构中,关于时间的格式转换和运算出现的次数还是比较多的,所以今天我们将时间的一些知识学习下。
首先我们先来看下关于时间格式的转换:
时间格式转换的方式有很多,我们这里就直接用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 |
我想通过以上这些知识,关于时间的转换和运算就再也不会出现问题了。