C#语法学习——DateTime时间结构

在C#中,你可以使用DateTime结构来获取并格式化时间。以下是一些示例和技巧:

获取当前日期和时间:

DateTime now = DateTime.Now; // 当前日期和时间
DateTime today = DateTime.Today; // 当前日期,时间部分为00:00:00

获取特定日期和时间:

DateTime specificDate = new DateTime(2022, 10, 31); // 2022年10月31日
DateTime specificDateTime = new DateTime(2022, 10, 31, 12, 30, 0); // 2022年10月31日12:30:00

 格式化日期和时间为字符串:

DateTime dateTime = DateTime.Now;
string formattedDateTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"); // 2022-10-31 12:30:00

使用自定义格式化字符串获取特定的日期和时间部分:

DateTime dateTime = DateTime.Now;
string year = dateTime.ToString("yyyy"); // 年份(四位)
string month = dateTime.ToString("MM"); // 月份(两位)
string day = dateTime.ToString("dd"); // 日期(两位)
string hour = dateTime.ToString("HH"); // 小时(两位)
string minute = dateTime.ToString("mm"); // 分钟(两位)
string second = dateTime.ToString("ss"); // 秒钟(两位)

使用预定义格式字符串获取常见的日期和时间格式:

DateTime dateTime = DateTime.Now;
string shortDateString = dateTime.ToString("d"); // 2022/10/31
string longDateString = dateTime.ToString("D"); // 2022年10月31日
string shortTimeString = dateTime.ToString("t"); // 12:30
string longTimeString = dateTime.ToString("T"); // 12:30:00
string fullDateTimeString = dateTime.ToString("F"); // 2022年10月31日 12:30:00

DateTime.Parse和DateTime.TryParse

还可以使用DateTime.Parse和DateTime.TryParse方法来将字符串转换为DateTime对象。

使用DateTime.Parse方法:

string dateString = "2022-10-31 12:30:00";
DateTime dateTime = DateTime.Parse(dateString);
Console.WriteLine(dateTime); // 输出:10/31/2022 12:30:00 PM

请注意,如果输入的字符串无法成功解析为有效的DateTime对象,DateTime.Parse方法将引发异常。

使用DateTime.TryParse方法:

string dateString = "2022-10-31 12:30:00";
DateTime dateTime;
if (DateTime.TryParse(dateString, out dateTime))
{
    Console.WriteLine(dateTime); // 输出:10/31/2022 12:30:00 PM
}
else
{
    Console.WriteLine("无效的日期时间格式");
}

DateTime.TryParse方法会尝试将输入字符串解析为DateTime对象。如果解析成功,它将返回true,并将DateTime对象存储在输出参数中;如果解析失败,它将返回false,并将DateTime对象设置为默认值DateTime.MinValue。

在使用DateTime.Parse和DateTime.TryParse方法时,还可以通过DateTime.ParseExact和DateTime.TryParseExact方法来指定特定的日期时间格式。这在处理需要遵循特定格式的日期时间字符串时非常有用。

例如,使用DateTime.ParseExact方法:

string dateString = "31-Oct-2022 12:30:00";
DateTime dateTime = DateTime.ParseExact(dateString, "dd-MMM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
Console.WriteLine(dateTime); // 输出:10/31/2022 12:30:00 PM
使用DateTime.TryParseExact方法:

string dateString = "31-Oct-2022 12:30:00";
DateTime dateTime;
if (DateTime.TryParseExact(dateString, "dd-MMM-yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
{
    Console.WriteLine(dateTime); // 输出:10/31/2022 12:30:00 PM
}
else
{
    Console.WriteLine("无效的日期时间格式");
}

这些是使用DateTime.Parse和DateTime.TryParse方法将字符串转换为DateTime对象的示例。根据实际情况,选择适合的方法和格式,以确保日期时间转换的准确性和可靠性。

DaysInMonth

要获取当月的天数,你可以使用DateTime类的静态方法DaysInMonth。下面是一个示例:

int year = 2022;
int month = 10;
int daysInMonth = DateTime.DaysInMonth(year, month);
Console.WriteLine(daysInMonth);  // 输出:31

在上面的示例中,我们指定了年份和月份,并使用DaysInMonth方法获取当月的天数。这里的year代表年份,month代表月份。在本例中,我们获取的是2022年的10月份的天数。

注意: DaysInMonth是一个静态方法,可以直接通过类名DateTime调用。它接受两个参数,表示年份和月份。返回的是一个int类型的值,表示对应月份的天数。

这是获取当月天数的简单示例。你可以根据需要传入不同的年份和月份来获取不同月份的天数。

日期值的变动

要获取前一年、前一个月等时间日期,你可以使用DateTime类的AddYears、AddMonths等方法。下面是一些示例:

获取前一年的日期:
DateTime currentDate = DateTime.Now;
DateTime previousYearDate = currentDate.AddYears(-1);
Console.WriteLine(previousYearDate);

在上面的示例中,我们使用AddYears方法来在当前日期的基础上减去1年,得到前一年的日期。

获取前一个月的日期:
DateTime currentDate = DateTime.Now;
DateTime previousMonthDate = currentDate.AddMonths(-1);
Console.WriteLine(previousMonthDate);

在上面的示例中,我们使用AddMonths方法来在当前日期的基础上减去1个月,得到前一个月的日期。

获取前一天的日期:
DateTime currentDate = DateTime.Now;
DateTime previousDayDate = currentDate.AddDays(-1);
Console.WriteLine(previousDayDate);

在上面的示例中,我们使用AddDays方法来在当前日期的基础上减去1天,得到前一天的日期。

获取前一个小时的时间:
DateTime currentDateTime = DateTime.Now;
DateTime previousHourDateTime = currentDateTime.AddHours(-1);
Console.WriteLine(previousHourDateTime);

在上面的示例中,我们使用AddHours方法来在当前时间的基础上减去1小时,得到前一个小时的时间。

你可以使用类似的方式来获取前一分钟、前一秒等时间日期。只需使用合适的DateTime类的方法,将对应的负数作为参数传递给AddYears、AddMonths等方法即可。

请注意,上述示例中的日期和时间均是基于当前日期和时间进行计算的,具体结果将取决于当前的系统日期和时间。  

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值