C# 如何在linq查询中从utc时区获取ist中上午7点到下午3点之间的记录

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

我想在上午7点到下午3点之间获取数据,但我在下午12点到下午5点之间获取记录,因为我没有在最后一句“
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中未按时间获取Do
a的可能重复项。timestamp
fromDate
表示“印度标准时间”或“Utc时间”中的时间?似乎您正在获取字符串,将其转换为IST时区日期,然后尝试从Utc时间转换(事实并非如此)。它每天都会得到正确的结果,但只有“a.timestamp.Hour>7&&a.timestamp.Hour<13”是错误的。添加此where子句后,会在印度st time中记录不按时间获取可能的副本
timestamp   "2017-07-21T18:26:01.004Z"