Dicom中日期和时间的解析处理
在Dicom 中存储的是05/06/2021, 15:00:38.000000
存入数据库中发现时间变为
是导入Dicom 数据时,解析时间错误,原来的实现如下:
string reviewTimeStr;//会变成
if (DataSet[DicomTags.ReviewTime].TryGetString(0, out reviewTimeStr))
{
TimeSpan reviewTime;
if (TimeSpan.TryParse(reviewTimeStr, out reviewTime))
{
approvalDateTime = approvalDateTime.AddTicks(reviewTime.Ticks);
}
}
上述代码中使用了TimeSpan, 这个参数应该是时间直接toString,而不应该是直接使用TryGetString的方法来取出时间的字符串
尝试一下两种方法可以解决时间解析问题
// 方式1
DateTime time1;
if (DataSet[DicomTags.ReviewTime].TryGetDateTime(0, out time1))
{
approvalDateTime = approvalDateTime.AddTicks(time1.Ticks);
}
// 方式2
DateTime time2;
if (DataSet[DicomTags.ReviewTime].TryGetDateTime(0, out time2))
{
TimeSpan reviewTime;
if (TimeSpan.TryParse(time2.TimeOfDay.ToString(), out reviewTime))
{
approvalDateTime = approvalDateTime.AddTicks(reviewTime.Ticks);
}
}
获取日期相对简单
// 获取日期
DateTime reviewDate;
if (DataSet[DicomTags.ReviewDate].TryGetDateTime(0, out reviewDate))
{
}