如果我在表单中有时间戳:yyyy-mm-dd hh:mm:ss:mmm
如何从时间戳中提取日期?
例如,如果时间戳显示为:“2010-05-18 08:36:52:236”从中获取2010-05-18的最佳方法是什么。
我要做的是隔离时间戳的日期部分,定义创建新时间戳的自定义时间。是否有更有效的方法来定义时间戳的时间而不先取出日期,然后再添加一个新时间?
答案 0 :(得分:9)
DateTime.Parse(“2010-05-18 08:36:52:236”)。ToString(“yyyy-MM-dd”);
答案 1 :(得分:7)
您应该使用DateTime
类型:
DateTime original = DateTime.Parse(str);
DateTime modified = original.Date + new TimeSpan(13, 15, 00);
string str = modified.ToString("yyyy-MM-dd HH:mm:ss:fff");
您的格式是非标准格式,因此您需要拨打ParseExact
而不是Parse
:
DateTime original = DateTime.ParseExact(str, "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
答案 2 :(得分:2)
您可以使用substring
:
"2010-05-18 08:36:52:236".Substring(0, 10);
或使用ParseExact
:
DateTime.ParseExact("2010-05-18 08:36:52:236",
"yyyy-MM-dd HH:mm:ss:fff",
CultureInfo.InvariantCulture)
.ToString("yyyy-MM-dd");
答案 3 :(得分:2)
DateTime date;
if (DateTime.TryParse(dateString, out date))
{
date = date.Date; // Get's the date-only component.
// Do something cool.
}
else
{
// Flip out because you didn't get a real date.
}
答案 4 :(得分:1)
获取DateTime上的.Date成员
DateTime date = DateTime.Now;
DateTime midnightDate = date.Date;
答案 5 :(得分:0)
像这样使用它:
var x = DateTime.Now.Date; //will give you midnight today
x.AddDays(1).AddTicks(-1); //use these method calls to modify the date to whats needed.
答案 6 :(得分:0)
最好(也是最快)的方法是将日期转换为整数,因为时间部分存储在小数部分。
试试这个:
select convert(datetime,convert(int, @yourdate))
所以你把它转换成一个整数,然后再回到数据,瞧,时间部分消失了。
当然,从原始值中减去这个结果只会给你时间部分。