首先,我尝试在本地系统上使用EF Core 7从应用程序执行。
public class SqlResponse
{
public DateTime Now { get; set; }
}
个字符result[0].Now
返回3.08.2023 11:00:23
然后我在DBeaver上执行下面的查询。数据库位于远程计算机上。
SELECT now()::timestamp;
型
查询返回2023-08-03 14:00:32.628
值。
我的数据库的时区是欧洲/伊斯坦布尔SHOW TIMEZONE;
| TimeZone |
| ------------ |
| Europe/Istanbul |
我检查我的Windows 10命令行:
C:\Users\tolgacakir>tzutil /g
Turkey Standard Time
型
我使用的NuGet包:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.5" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.3" />
型
1条答案
按热度按时间bpsygsoo1#
更改SqlResponse类以使用DateTimeOffset:
字符串
更新查询以使用带时区的时间戳:
型
将EF Core应用程序的时区调整为欧洲/伊斯坦布尔。这可以在Startup.cs文件的ConfigureServices方法中完成:
型
通过这些更改,您应该在EF Core和DBeaver之间获得一致的结果,两者都显示欧洲/伊斯坦布尔时区的时间戳。