C# 如何在linq查询中从utc时区获取ist中上午7点到下午3点之间的记录
我想在上午7点到下午3点之间获取数据,但我在下午12点到下午5点之间获取记录,因为我没有在最后一句“C# 如何在linq查询中从utc时区获取ist中上午7点到下午3点之间的记录,c#,entity-framework,linq,C#,Entity Framework,Linq,我想在上午7点到下午3点之间获取数据,但我在下午12点到下午5点之间获取记录,因为我没有在最后一句“a.timestamp.Hour>7&&a.timestamp.Hour7&&a.timestamp.Hour7&&a.timestamp.Hour
a.timestamp.Hour>7&&a.timestamp.Hour<13)
”中转换为IST hours for hours chek。如何将utc时间转换为IST小时,以便获得所需数据
var reader = new StreamReader(stream, encoding);
var responseString = reader.ReadToEnd();
var Pirs = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AssetDetail>>(responseString);
var items = Pirs
.Where(a =>
!a.dataFrame.EndsWith("AAAAAAAAAAA=") &&
(fromDate == null ||
fromDate.Value.Date <=
TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(a.timestamp),
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).Date) &&
(toDate == null ||
toDate.Value.Date >=
TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(a.timestamp),
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).Date) &&
a.timestamp.Hour > 7 && a.timestamp.Hour < 13)
.GroupBy(a => a.dataFrame.Substring(a.dataFrame.Length - 12))
.Select(g => g.First()).OrderBy(a => a.timestamp);
a.timestamp
和fromDate
是否表示“印度标准时间”或“Utc时间”中的时间?似乎您正在提取一个字符串,将其转换为IST时区日期,然后尝试从Utc时间转换它(它不是)。按天计算,结果是正确的,但只有“a.timestamp.Hour>7&&a.timestamp.Hour<13”这是错误的。添加此where子句后,记录在印度st time中未按时间获取Doa的可能重复项。timestamp
和fromDate
表示“印度标准时间”或“Utc时间”中的时间?似乎您正在获取字符串,将其转换为IST时区日期,然后尝试从Utc时间转换(事实并非如此)。它每天都会得到正确的结果,但只有“a.timestamp.Hour>7&&a.timestamp.Hour<13”是错误的。添加此where子句后,会在印度st time中记录不按时间获取可能的副本
timestamp "2017-07-21T18:26:01.004Z"