loc*_*boy 14 .net c# asp.net datetime datetime-format
我正在尝试从DateTime对象创建一个生成格式的字符串mm:dd:yyyy
.
通常,该DateTime
对象来自mm:dd:yyyy hrs:min:sec AM/PM
.
有没有办法快速删除hrs:min:sec AM/PM
DateTime 的部分,以便当我转换它时,ToString()
它只会导致mm:dd:yyyy
?
Mar*_*ers 12
要回答你的问题,不 - 你必须将它存储在不同的类型中.最简单的选择是使用字符串.
string date = dateTime.ToString("MM:dd:yyyy");
Run Code Online (Sandbox Code Playgroud)
但是我也强烈建议不要在程序内部将日期存储为字符串.这将使得难以对它们进行任何计算或比较.此外,我建议你不要强迫你的日期表示形式的特定文化,因为这意味着你的应用程序可能无法在其他文化中按预期工作.
稍微复杂一点的方法是创建一个覆盖ToString的自定义类.我也会避免这种情况,因为使用标准库函数的类型仍然很难.你必须一直来回转换.
只需将其保留为DateTime,并仅在表示层中转换为字符串.您可以使用DateTime.ToShortDateString
打印用户友好的文化感知字符串.
Dav*_*ave 10
datetime DateWithTimeNoSeconds =
DateTime.Now.Date.AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute);
Run Code Online (Sandbox Code Playgroud)
这将获取当前日期和时间的日期,并添加小时和分钟.
DateTime date1 = new DateTime(2008, 6, 1, 7, 47, 0);
Console.WriteLine(date1.ToString());
// Get date-only portion of date, without its time.
DateTime dateOnly = date1.Date;
// Display date using short date string.
Console.WriteLine(dateOnly.ToString("d"));
// Display date using 24-hour clock.
Console.WriteLine(dateOnly.ToString("g"));
Console.WriteLine(dateOnly.ToString("MM/dd/yyyy HH:mm"));
// The example displays the following output to the console:
// 6/1/2008 7:47:00 AM
// 6/1/2008
// 6/1/2008 12:00 AM
// 06/01/2008 00:00
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx
如果要从对象中删除小时、秒、毫秒(删除为重置为 0)DateTime
而不转换为字符串,则可以使用该Date
属性。
// Get date-only portion of date, without its time.
var date = DateTime.Now.Date;
Run Code Online (Sandbox Code Playgroud)
小智 7
虽然在大多数情况下我同意Mark Byers,但我遇到的情况是我需要存储一个日常时间,这个日期时间只是小时的.存储分钟和秒钟不仅是多余的,而且也是不准确的.用户只需选择日期和小时,因此当用户选择日期和小时时,分钟和秒将设置为当前时间.
在这种情况下,删除分钟和秒钟非常容易.这是代码:
scheduledDate = scheduledDate.AddMinutes(
scheduledDate.Minute * -1).AddSeconds(
scheduledDate.Second * -1);
Run Code Online (Sandbox Code Playgroud)
然后我将它作为完整日期时间存储在DB中,其中分钟和秒始终为0.
归档时间: |
|
查看次数: |
50900 次 |
最近记录: |