C#(C sharp)字符串和时间的相互转换。
一、DateTime –> string
时间类型转化成字符串类型,那是相当的简单,直接调用ToString()方法即可。如:
DateTime dt = DateTime.Now;
string dtStr = dt.ToString();
如果想对输出格式化,可以这么写:
dt.ToString("yyyy年MM月dd日"); //2005年11月5日
dt.ToString("yyyy-MM-dd"); //2005-11-5
string.Format("{0:d}",dt); //2005-11-5
string.Format("{0:D}",dt); //2005年11月5日
时间类型格式化(成字符类型)可以通过两种方式:1、自定义时间格式。自己定义时间的构成和表示;2、标准时间格式。由标准库提供的有限的表示方式。(详细的情参考列表)
二、string -> DateTime
string dtString = “2009-10-12 00:12:05”;
DateTime dt = DateTime.Parse(dtStr); //方式一
DateTime dt2 = Convert.ToDateTime(dtStr); //方式二
当然DateTime也有多种表示方式(非格式化成字符串类型),如:
dt.ToFileTimeUtc(); //127756704859912816
dt.ToLocalTime(); //2005-11-5 21:21:25
dt.ToLongDateString(); //2005年11月5日
当然如果最后要打印出来,就需要ToString()一下,转化成字符串类型。
三、时间的其它方法,属性和运算
参考:
Custom DateTime Formatting
There are following custom format specifiers y (year), M (month), d (day), h (hour 12), H (hour 24), m (minute), s (second), f (second fraction), F (second fraction, trailing zeroes are trimmed), t (P.M or A.M) and z (time zone).
Following examples demonstrate how are the format specifiers rewritten to the output.
You can use also date separator / (slash) and time sepatator : (colon). These characters will be rewritten to characters defined in the current DateTimeFormatInfo.DateSeparator and DateTimeFormatInfo.TimeSeparator.
Here are some examples of custom date and time formatting:
[C#]
Standard DateTime Formatting
In DateTimeFormatInfo there are defined standard patterns for the current culture. For example property ShortTimePattern is string that contains value h:mm tt for en-US culture and value HH:mm for de-DE culture.
Following table shows patterns defined in DateTimeFormatInfo and their values for en-US culture. First column contains format specifiers for the String.Format method.
Specifier | DateTimeFormatInfo property | Pattern value (for en-US culture) |
t | ShortTimePattern | h:mm tt |
d | ShortDatePattern | M/d/yyyy |
T | LongTimePattern | h:mm:ss tt |
D | LongDatePattern | dddd, MMMM dd, yyyy |
f | (combination of D and t) | dddd, MMMM dd, yyyy h:mm tt |
F | FullDateTimePattern | dddd, MMMM dd, yyyy h:mm:ss tt |
g | (combination of d and t) | M/d/yyyy h:mm tt |
G | (combination of d and T) | M/d/yyyy h:mm:ss tt |
m, M | MonthDayPattern | MMMM dd |
y, Y | YearMonthPattern | MMMM, yyyy |
r, R | RFC1123Pattern | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' (*) |
s | SortableDateTimePattern | yyyy'-'MM'-'dd'T'HH':'mm':'ss (*) |
u | UniversalSortableDateTimePattern | yyyy'-'MM'-'dd HH':'mm':'ss'Z' (*) |
|
| (*) = culture independent |
Following examples show usage of standard format specifiers in String.Format method and the resulting output.
在C#中用于DateTime -> string的转化
See also
-
[C#] String Format for Double – format float numbers
-
[C#] String Format for Int – format (align) integer numbers
-
[C#] IFormatProvider for Numbers – parse float numbers with IFormatProvider
-
[C#] Custom IFormatProvider – string formatting with custom IFormatProvider
-
[C#] Align String with Spaces – how to align text to the right or left
-
[C#] Indent String with Spaces – how to indent text with repeated spaces
-
Custom Date and Time Format Strings – MSDN – custom date-time formatting
-
Standard Date and Time Format Strings – MSDN – standard date-time formatting
-
DateTimeFormatInfo – MSDN – date-time patterns for specific cultures
-
String.Format – MSDN – method to format strings