【问题标题】:How do you get the current time of day?您如何获得当前时间?
【发布时间】:2010-09-22 18:05:00
【问题描述】:

你如何获得当前时间(不是日期和时间)?

例如:下午 5:42:12

【问题讨论】:

    标签: c# datetime


    【解决方案1】:

    DateTime.Now.TimeOfDay 将其作为TimeSpan 提供给您(从午夜开始)。

    DateTime.Now.ToString("h:mm:ss tt") 将其作为 字符串 提供给您。

    日期时间参考:https://msdn.microsoft.com/en-us/library/system.datetime

    【讨论】:

    • DateTime.Now.ToShortTimeString() 与第二个建议相同。
    • 嗯,几乎一样,它返回一个字符串,但缺少时间的秒部分。
    • .ToString("HH:mm:ss tt") 会给你 17:42:12 PM,而 .ToString("h:mm:ss tt") 给你 5:42:12下午。
    • @Kyle - 不太准确。 ToShortTimeString 以用户选择的短时间格式返回时间,在 Windows 的区域设置中指定。
    【解决方案2】:

    试试这个:

    DateTime.Now.ToString("HH:mm:ss tt");
    

    其他格式可以查看本站:C# DateTime Format

    【讨论】:

      【解决方案3】:

      另一个使用 String.Format() 的选项

      string.Format("{0:HH:mm:ss tt}", DateTime.Now)
      

      【讨论】:

        【解决方案4】:

        带有 AM/PM 指示符的当前时间:

        DateTime.Now.ToString("hh:mm:ss tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)
        DateTime.Now.ToString("hh:mm:ss.fff tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)
        

        当前时间使用 0-23 小时表示法:

        DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
        DateTime.Now.ToString("HH:mm:ss.fff", System.Globalization.DateTimeFormatInfo.InvariantInfo)
        

        【讨论】:

        • @Anar,我解开了你的 -1。问题是“我如何获得一天中的时间”,所有答案都回答了这个问题。您的反对意见是因为您将问题阅读为“如何格式化像5:00 PM 这样的小时数”,而 OP 仅(并且明确地)提到了特定的日期格式作为示例。你甚至对@Musikero31's answer 投了反对票,但它提到了任何人都可以在其中查找他们正在寻找的格式字符串的页面。
        • 又看了一遍问题,我觉得你没有看错。但我也没有错,因为如果这是您提出的一般性问题,那么大多数回答者都误解了这个问题,因为他们的回答不是一般性的而是具体的。总而言之,我认为这个问题本来可以更清楚。顺便问一下,“我解开了你的 -1”是什么意思?
        • @Anar 将DateTime.Now 格式化为字符串需要a 格式,他们必须放入something。这并没有使它成为错误的答案,但如果您认为应该有另一种格式,请随时编辑它们。我的意思是我对被否决的答案投了赞成票。
        • 如果没有任何误解,他们会将所有版本都放在第一个想到的 something 之外。我们都知道 SO 对努力回答的人非常慷慨。但是,是的,我们不要偏离主题太多。我只能说,我会检查我所有的 -1 并再次决定。
        【解决方案5】:
        DateTime.Now.TimeOfDay
        

        DateTime.Now.ToShortTimeString()
        

        【讨论】:

          【解决方案6】:

          我们开始吧:

           DateTime time = DateTime.Now;
           Console.WriteLine(time.ToString("h:mm:ss tt"));
          

          【讨论】:

          • t 时间应大写。为您修复它。
          【解决方案7】:
          DateTime.Now.ToString("yyyy-MM-dd h:mm:ss tt");
          

          试一试,充分满足您的需求

          【讨论】:

            【解决方案8】:

            这个会更好,试试这个

                DateTime.Now.ToShortTimeString();
            

            为此,您无需指定时间格式。

            【讨论】:

              【解决方案9】:

              Datetime.TimeOfDay 返回一个TimeSpan,可能就是您要查找的内容。

              【讨论】:

                【解决方案10】:

                获取当前日期和时间,然后只使用其中的时间部分。查看在MSDN docs 中格式化日期时间字符串的可能性。

                【讨论】:

                  【解决方案11】:

                  这可能是一个可能的解决方案:

                  DateTime now = DateTime.Now;
                  string time = now.ToString("T");
                  

                  【讨论】:

                    【解决方案12】:
                    var CurDate= DateTime.Now;
                    CurDate.Hour;
                    CurDate.Minute;
                    CurDate.Millisecond
                    

                    【讨论】:

                      【解决方案13】:

                      我认为这段代码会解决你的问题

                      DateTime.Now.ToString("HH:mm")
                      

                      【讨论】:

                      • ToString 方法已经被其他几个解决方案所覆盖。此外,这也不会捕获秒或 AM/PM 时间。
                      【解决方案14】:

                      计算当前日期时间:

                      DateTime theDate = DateTime.UtcNow;
                      
                      string custom = theDate.ToString("d");
                      
                      MessageBox.Show(custom);
                      

                      【讨论】:

                        【解决方案15】:

                        我也在尝试这个,发现这些页面也很有帮助。 首先是主课... https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx

                        现在 ToString 方法的一些说明符格式... https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo(v=vs.110).aspx

                        例子:

                        using System;
                        
                        namespace JD
                        {
                            class Program
                            {
                                public static DateTime get_UTCNow()
                                {
                                    DateTime UTCNow = DateTime.UtcNow;
                                    int year = UTCNow.Year;
                                    int month = UTCNow.Month;
                                    int day = UTCNow.Day;
                                    int hour = UTCNow.Hour;
                                    int min = UTCNow.Minute;
                                    int sec = UTCNow.Second;
                                    DateTime datetime = new DateTime(year, month, day, hour, min, sec);
                                    return datetime;
                                }
                        
                                static void Main(string[] args)
                                {
                                    DateTime datetime = get_UTCNow();            
                        
                                    string time_UTC = datetime.TimeOfDay.ToString();
                                    Console.WriteLine(time_UTC);
                        
                                    Console.ReadLine();
                        
                                }
                            }
                        }
                        

                        我将 TimeOfDay 方法放在那里只是为了表明您获得了默认的 24 小时时间,如“从午夜开始的时间”所述

                        你可以使用我的geter方法(); :-D

                        【讨论】:

                          【解决方案16】:
                          MyEmail.Body = string.Format("The validation is done at {0:HH:mm:ss} Hrs.",DateTime.Now);
                          

                          可以使用{0:HH:mm:ss}{0:HH:mm:ss.fff}{0:DD/mm/yyy HH:mm:ss}等...

                          【讨论】:

                            【解决方案17】:

                            这只会以 24 小时格式显示当前时间:

                            class Program
                            {
                                static void Main(string[] args)
                                {
                                    Console.WriteLine(DateTime.Now.ToLongTimeString().ToString());
                                    Console.WriteLine(DateTime.Now.ToShortTimeString().ToString());
                                    Console.ReadLine();
                                }
                            }
                            

                            问候

                            【讨论】:

                              【解决方案18】:

                              很简单DateTime.Now.ToString("hh:mm:ss tt")

                              【讨论】:

                                【解决方案19】:

                                使用下面的代码

                                DateTime.Now.ToString("h:mm:ss tt")
                                

                                【讨论】:

                                • 这与投票最高的答案有何不同?
                                【解决方案20】:

                                在我的例子中,我使用下面的代码从 DateTime 单独获取时间。

                                var currentDateTime = DateTime.Now; 
                                var currentTimeAlone = new TimeSpan(currentDateTime.Hour, currentDateTime.Minute,    currentDateTime.Second); 
                                Console.WriteLine(currentTimeAlone);
                                

                                希望它对某人有所帮助。 :)

                                【讨论】:

                                  【解决方案21】:

                                  试试这个。它在 3tier Architecture Web Application 中为我工作。

                                  "'" + DateTime.Now.ToString() + "'"
                                  

                                  请记住插入查询中的单引号。

                                  例如:

                                  string Command = @"Insert Into CONFIG_USERS(smallint_empID,smallint_userID,str_username,str_pwd,str_secquestion,str_secanswer,tinyint_roleID,str_phone,str_email,Dt_createdOn,Dt_modifiedOn) values ("
                                   + u.Employees + ","
                                   + u.UserID + ",'"
                                   + u.Username + "','"
                                   + u.GetPassword() + "','"
                                   + u.SecQ + "','"
                                   + u.SecA + "',"
                                   + u.RoleID + ",'"
                                   + u.Phone + "','"
                                   + u.Email + "','"
                                   + DateTime.Now.ToString() + "','"
                                   + DateTime.Now.ToString() + "')";
                                  

                                  DateTime 在行尾插入。

                                  【讨论】:

                                    猜你喜欢
                                    • 2014-09-10
                                    • 2023-02-18
                                    • 2011-10-30
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2011-09-24
                                    • 2011-04-06
                                    相关资源
                                    最近更新 更多