转 C#中 取时间的年月日时分秒

C#时间处理技巧
本文详细介绍了使用C#进行时间格式转换的方法,包括获取当前时间的各组成部分、不同格式的时间字符串展示方式,以及时间间隔的计算等实用技巧。

1:时间格式转换

System.DateTime currentTime=new System.DateTime();

1.1 当前年月日时分秒

currentTime=System.DateTime.Now;

1.2 当前年

int =currentTime.Year;

1.3 当前月

int =currentTime.Month;

1.4 当前日

int =currentTime.Day;

1.5 当前时

int =currentTime.Hour;

1.6 当前分

int =currentTime.Minute;

1.7 当前秒

int =currentTime.Second;

1.8 当前毫秒

int 毫秒=currentTime.Millisecond;

(变量可用中文)

1.9 中文日期显示——年月日时分

string strY=currentTime.ToString("f"); //不显示秒

1.10 中文日期显示_年月

string strYM=currentTime.ToString("y");

1.11 中文日期显示_月日

string strMD=currentTime.ToString("m");

1.12 中文年月日

string strYMD=currentTime.ToString("D");

1.13 当前时分,格式为:1424

string strT=currentTime.ToString("t");

1.14 当前时间,格式为:2003-09-23T14:46:48

string strT=currentTime.ToString("s");

1.15 当前时间,格式为:2003-09-23 14:48:30Z

string strT=currentTime.ToString("u");

1.16 当前时间,格式为:2003-09-23 14:48

string strT=currentTime.ToString("g");

1.17 当前时间,格式为:Tue, 23 Sep 2003 14:52:40 GMT

string strT=currentTime.ToString("r");

1.18获得当前时间天后的日期时间

DateTime newDay = DateTime.Now.AddDays(100);

1.192006-8-7 9:13:45------>2006/08/07 09:13

lblNow.Text =System.DateTime.Now.ToString("yyyy/MM/dd HH:mm").Replace("-","/");

string data1=Convert.ToDateTime(dtpkFrom.Text.Trim()).ToString("yyyy-MM-dd ");

string data2=Convert.ToDateTime(dtpkTo.Text.Trim()).ToString("yyyy-MM-dd ");

 

以下内容转自http://www.cnblogs.com/musickh/archive/2009/07/16/1524912.html,在此多谢博主!

DateTime.Now=2009-7-16 5:20:56

//今天

DateTime.Now.Date.ToString();
"2009-7-16 0:00:00"

//起始日期

 DateTime.Now.Date.AddDays(-(int)(DateTime.Now.DayOfWeek)+1).ToString();
{2009-7-13 0:00:00}
DateTime.Now.Date.AddDays(7-(int)(DateTime.Now.DayOfWeek)).ToString();
{2009-7-19 0:00:00}

//月起始日期
new DateTime(DateTime.Now.Year,DateTime.Now.Month,1).ToString();
{2009-7-1 0:00:00}

 new   DateTime(DateTime.Now.Date.Year,DateTime.Now.Date.Month,DateTime.DaysInMonth(DateTime.Now.Date.Year,DateTime.Now.Date.Month)).ToString();
"2009-7-31 0:00:00"

//年起始日期
 new   DateTime(DateTime.Now.Date.Year,1,1).ToString();
{2009-1-1 0:00:00}
 new   DateTime(DateTime.Now.Date.Year,12,DateTime.DaysInMonth(DateTime.Now.Date.Year,DateTime.Now.Date.Month)).ToString();
{2009-12-31 0:00:00}

 

 

转于http://hi.baidu.com/whzsf/blog/item/433f26188d3b2d1635fa4159.html

时间相减 得到天数、小时、分钟、秒差

DateTime dtone = Convert.ToDateTime("2007-1-1 05:00:00");
        DateTime dtwo = Convert.ToDateTime("2007-1-5 08:00:00");
        TimeSpan span = dtone.Subtract(dtwo); //算法是dtone 减去 dtwo
        tss.Text = span.Days + "天" + span.Hours + "小时" + span.Minutes + "分钟" + span.Seconds+"秒" + span.TotalDays;

<think>首先,用户的问题是关于在C#中获当前时间,包括年、月、日、时、分、秒、毫秒的字符串表示。我需要参考提供的引用内容来构建答案。回顾引用: -引用[1]:展示了如何获当前时间并格式化为字符串,包括微秒:`now.ToString("yyyy-MM-dd HH:mm:ss.ffffff")`。-引用[2]:提到了获当前时间的一些方法,但没有直接给出完整格式。-引用[3]:讨论了获毫秒的方法,包括使用`DateTime.Now.ToString(@"ss\:fff")`和高精度计时器。-引用[4]:展示了如何计算时间戳,包括年月日时分秒毫秒。-引用[5]:是关于Java的,与C#无关,所以忽略。 用户的需求是获当前时间字符串,包括年、月、日、时、分、秒、毫秒。标准格式应该是`yyyy-MM-ddHH:mm:ss.fff`,其中`fff`表示毫秒(三位数)。引用[1]中使用了`ffffff`,那是微秒(六位数),但用户指定了毫秒,所以我应该使用`fff`。 关键点:-使用`DateTime.Now`获当前时间。 -使用`ToString`方法格式化字符串。 -格式字符串:`"yyyy-MM-dd HH:mm:ss.fff"`输出如"2023-10-0514:30:45.123" 在回答中,我需要:-使用中文。-结构清晰,逐步解释。-确保LaTeX语法正确:行内数学用`$...$`,独立公式用`$$...$$`(但这里可能不需要数学公式)。-生成相关问题。 -在引用末尾添加引用标识。回答结构:1.**介绍**:简要解释如何获当前时间字符串。 2. **代码示例**:提供C#代码示例。3.**解释**:解释代码中的格式字符串。4.**相关问题**:生成相关问题。 添加引用:由于参考了引用[1],在相关部分末尾添加`[^1]`。最终代码:```csharpDateTime now= DateTime.Now;string timeString =now.ToString("yyyy-MM-ddHH:mm:ss.fff");Console.WriteLine(timeString); ```生成相关问题: 1.如何获当前时间的毫秒部分? 2.如何格式化日期时间以包括微秒?3.C#中如何获高精度时间戳?确保回答真实可靠。</think>### C#当前时间字符串(包括年、月、日、时、分、秒、毫秒) 在 C# 中,获当前时间并格式化为包含年、月、日、时、分、秒和毫秒的字符串,可以使用 `DateTime.Now` 属性结合 `ToString` 方法。核心是通过自定义格式字符串实现,其中 `yyyy` 表示年,`MM` 表示月,`dd` 表示日,`HH` 表示时(24小时制),`mm` 表示分,`ss` 表示秒,`fff` 表示毫秒(三位数)。以下是详细步骤和代码示例: #### 步骤说明 1. **获当前时间**:使用 `DateTime.Now` 获当前系统时间。 2. **格式化字符串**:使用 `ToString` 方法并传入格式字符串 `"yyyy-MM-dd HH:mm:ss.fff"`。 - 格式说明: - `yyyy`:四位年份(如 2023)。 - `MM`:两位月份(如 10)。 - `dd`:两位日期(如 05)。 - `HH`:两位小时(24小时制,如 14)。 - `mm`:两位分钟(如 30)。 - `ss`:两位秒(如 45)。 - `fff`:三位毫秒(如 123)。 - 输出示例:`"2023-10-05 14:30:45.123"`。 3. **输出或使用结果**:将生成的字符串用于显示、日志记录或其他处理。 #### 完整代码示例 ```csharp using System; class Program { static void Main() { // 获当前时间 DateTime now = DateTime.Now; // 格式化为字符串:年-月-日 时:分:秒.毫秒 string timeString = now.ToString("yyyy-MM-dd HH:mm:ss.fff"); // 输出结果(例如:2023-10-05 14:30:45.123) Console.WriteLine("当前时间字符串: " + timeString); } } ``` #### 代码解释 - `DateTime now = DateTime.Now;`:获当前系统时间,包括所有时间组件。 - `ToString("yyyy-MM-dd HH:mm:ss.fff")`:使用标准格式字符串精确到毫秒。注意: - 分隔符 `-` 和 `:` 可自定义(如改为 `/`),但 `fff` 必须保留以表示毫秒。 - 毫秒范围是 000-999,确保三位数显示。 - 此方法简单可靠,适用于大多数场景。如果需要更高精度(如微秒),可参考其他方法[^1]。 #### 注意事项 - **精度**:`DateTime.Now` 的毫秒精度决于系统时钟(通常精度为 10-15 毫秒)。如需更高精度(如微秒),可使用 `QueryPerformanceCounter` API(参考引用[^3])。 - **时区处理**:`DateTime.Now` 返回本地时间。如需 UTC 时间,改用 `DateTime.UtcNow`。 - **性能**:频繁调用 `DateTime.Now` 可能影响性能,建议在循环外获一次时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值