我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间。
DateTime.Now.ToString();
返回值:2021-2-25 20:02:10
DateTime.Now.ToLongDateString().ToString();
返回值:2021年2月25日
DateTime.Now.ToShortDateString().ToString();
返回值:2021-2-25
DateTime.Now.Date.ToString();
返回值:2021-2-25 0:00:00
DateTime.Now.ToLongTimeString().ToString();
返回值:20:02:10
DateTime.Now.ToShortTimeString().ToString();
返回值:20:16
DateTime.Now.ToString("hh:mm:ss");
返回值:08:05:57
DateTime.Now.TimeOfDay.ToString();
返回值:20:33:50.2787500
DateTime.ToFileTime().ToString();
返回值:128650040212500000
DateTime.Now.Year.ToString();
返回值:2021
DateTime.ToString的方法(String, IFormatProvider)
using ConsoleApp0_test;
using System;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
String format = "D";
DateTime date = DateTime.Now;
Console.WriteLine(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
Console.ReadKey();
}
}
}
结果输出
Saturday, 08 October 2022
参数format格式详细用法:
格式字符 | 关联属性/说明 |
---|---|
d | 短日期 |
D | 长日期 |
f | 完整短日期和时间(长日期和短时间) |
F | 完整长日期和时间(长日期和长时间) |
g | 常规(短日期和短时间) |
G | 常规(短日期和长时间) |
m、M | 月日 |
r、R | FC1123Pattern |
s | 使用当地时间的 SortableDateTimePattern(基于 ISO 8601) |
t | 短时间 |
T | 长时间 |
u | UniversalSortableDateTimePattern 用于显示通用时间的格式 |
U | 使用通用时间的完整日期和时间(长日期和长时间) |
y、Y | YearMonthPattern |
结果:
d 10/08/2022
D Saturday, 08 October 2022
f Saturday, 08 October 2022 17:25
F Saturday, 08 October 2022 17:25:10
g 10/08/2022 17:25
G 10/08/2022 17:25:10
m October 08
M October 08
r Sat, 08 Oct 2022 17:25:10 GMT
R Sat, 08 Oct 2022 17:25:10 GMT
s 2022-10-08T17:25:10
t 17:25
T 17:25:10
u 2022-10-08 17:25:10Z
U Saturday, 08 October 2022 09:25:10
y 2022 October
Y 2022 October
下表列出了可被合并以构造自定义模式的模式。
这些模式是区分大小写的;例如,识别“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 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\”。 |
using ConsoleApp0_test;
using System;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
String[] format = new String[]{ "d","dd", "ddd", "dddd",
"M", "MM", "MMM", "MMMM",
"y", "yy", "yyy", "yyyy",
"gg",
"hh",
"HH",
"m", "mm",
"s", "ss",
"f", "ff", "fff", "ffff", "fffff", "ffffff",
"t" ,"tt","zz","zzz"};
DateTime date = DateTime.Now;
for(int i = 0; i < format.Length; i++)
{
Console.WriteLine(format[i] + " " + date.ToString(format[i], DateTimeFormatInfo.InvariantInfo));
}
Console.ReadKey();
}
}
}
结果:
d 10/08/2022
dd 08
ddd Sat
dddd Saturday
M October 08
MM 10
MMM Oct
MMMM October
y 2022 October
yy 22
yyy 2022
yyyy 2022
gg A.D.
hh 05
HH 17
m October 08
mm 37
s 2022-10-08T17:37:49
ss 49
f Saturday, 08 October 2022 17:37
ff 03
fff 031
ffff 0319
fffff 03193
ffffff 031931
t 17:37
tt PM
zz +08
zzz +08:00
只有上面第二个表中列出的格式模式才能用于创建自定义模式;
在第一个表中列出的标准格式字符不能用于创建自定义模式。
自定义模式的长度至少为两个字符;
例如,DateTime.ToString(“d”) 返回 DateTime 值;
“d”是标准短日期模式。
DateTime.ToString( “%d”) 返回月中的某天;
“%d”是自定义模式.
DateTime.ToString( "d ") 返回后面跟有一个空白字符的月中的某天;
“d”是自定义模式。
比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式,如要得到2022年10月 这样格式的时间可以这样写:
using ConsoleApp0_test;
using System;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
String format = "D";
DateTime date = DateTime.Now;
Console.WriteLine(date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo));
Console.ReadKey();
}
}
}
DateTime.Now.AddYears(1).ToString();//即添加一年
DateTime.Now.AddMonths(1).ToString();//即添加一月
DateTime.Now.AddDays(1).ToString();//即添加一天
DateTime.Now.AddHours(1).ToString();//即添加一小时
DateTime.Now.AddMinutes(1).ToString();//即添加一分
DateTime.Now.AddSeconds(1).ToString();//即添加一秒
using ConsoleApp0_test;
using System;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
string time = DateTime.Now.ToString(); //2022/10/7 16:57:41
string time1 = DateTime.Now.AddDays(1).ToString(); //2022/10/8 16:57:41
//获取日期+时间
string time2 = DateTime.Now.ToString(); //2022/10/7 16:57:41
string time3 = DateTime.Now.ToLocalTime().ToString(); //2022/10/7 16:57:41
//获取日期
string time4 = DateTime.Now.ToLongDateString().ToString(); //2022年10月7日
string time5 = DateTime.Now.ToShortDateString().ToString(); //2022/10/7
string time6 = DateTime.Now.ToString("yyyy-MM-dd"); //2022-10-07
string time7 = DateTime.Now.Date.ToString(); //2022/10/7 0:00:00
//获取时间
string time8 = DateTime.Now.ToLongTimeString().ToString(); //16:57:41
string time9 = DateTime.Now.ToShortTimeString().ToString(); //16:57
string time10 = DateTime.Now.ToString("hh:mm:ss"); //04:57:41
string time11 = DateTime.Now.TimeOfDay.ToString(); //16:57:41.9689284
//其他
string time12 = DateTime.Now.ToFileTime().ToString(); //133096066619690388
string time13 = DateTime.Now.ToFileTimeUtc().ToString(); //133096066619698232
string time14 = DateTime.Now.ToOADate().ToString(); //44841.70673575231
string time15 = DateTime.Now.ToUniversalTime().ToString(); //2022/10/7 8:57:41
string time16 = DateTime.Now.Year.ToString(); //获取年份 2022
string time17 = DateTime.Now.Month.ToString(); //获取月份 10
string time18 = DateTime.Now.DayOfWeek.ToString(); //获取星期 Friday
string time19 = DateTime.Now.DayOfYear.ToString(); //获取第几天 280
string time20 = DateTime.Now.Hour.ToString(); //获取小时 16
string time21 = DateTime.Now.Minute.ToString(); //获取分钟 57
string time22 = DateTime.Now.Second.ToString(); //获取秒数 41
Console.WriteLine(time+"\n"+time1+"\n"+ time2 + "\n" + time3 + "\n" + time4 + "\n" + time5 + "\n" + time6 + "\n" +
time7 + "\n" + time8 + "\n" + time9 + "\n" + time10 + "\n" + time11 + "\n" + time12 + "\n" +
time13 + "\n" + time14 + "\n" + time15 + "\n" + time16 + "\n" + time17 + "\n" + time18 + "\n" + time19 + "\n" +
time20 + "\n" + time21 + "\n" + time22 + "\n" );
Console.ReadKey();
}
}
}