我有用于从数据库设置时间戳的属性。如何在毫秒中包含DateTime
string format = "dd/MM/yyyy HH:mm:ss.ff";
/// <summary>
/// Gets the DateTime data and converts it to UTC
/// </summary>
public DateTime TimeStamp
{
get
{
return _TimeStamp.ToLocalTime();
}
set
{
if (_TimeStamp != null)
{
_TimeStamp = value;
}
}
}
如何我从我的DATABSE把事情如下:
using (SQLiteConnection con = new SQLiteConnection(builder.ConnectionString))
{
con.Open();
string stm = @"Select * From Messages m join MessageDetails md on m.MessageID = md.MessageID GROUP BY m.MessageID";
using (SQLiteCommand cmd = new SQLiteCommand(stm, con))
{
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
MessageDetails detail = new MessageDetails { MessageID = rdr.GetString(0), TimeStamp = rdr.GetDateTime(1), StoreNumber = rdr.GetString(2), TerminalNumber = rdr.GetInt32(3) };
ViewModel.MetricsResult.Add(detail);
}
}
}
这部分是从另一个类。
数据库吐出时间戳,包括星期几,日期,4位数年份,然后显示小时(hh),分钟(mm)和秒数(ss)。但我想包括毫秒。
我必须将我的DateTime转换为字符串吗?还是有办法做到这一点,仍然保持一切为DateTime?
为了以毫秒显示我的DateTime,我需要在这个属性内做些什么?提前谢谢了。
听起来这个问题与您向我们展示的代码无关,以及与您如何从数据库中提取代码有关的所有事情 - 您没有向我们展示过。 (我个人建议不要转换到当地时间,特别是因为你只能在一个方向上做到这一点,但这是另一回事。)请澄清你的问题。 –
你需要澄清你的问题。但为了回答某些部分,'DateTime'结构可以以[[Tick]]的粒度存储(https://msdn.microsoft.com/en-us/library/system.datetime.ticks(v = vs.110 ).aspx#Remarks)等于100纳秒。要显示毫秒,您可以使用[自定义时间格式fff](https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/custom-date-and-time-format-strings#the -fff - 自定义格式说明符)。正如Jon指出的那样,您的问题还包括将DateTime存储在数据库中并在C#应用程序和数据库之间来回传输 – Vikhram