Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#应用程序范围内更改只有日期部分用于日期时间比较_C#_Datetime_C# 4.0_Wpf 4.0 - Fatal编程技术网

如何在C#应用程序范围内更改只有日期部分用于日期时间比较

如何在C#应用程序范围内更改只有日期部分用于日期时间比较,c#,datetime,c#-4.0,wpf-4.0,C#,Datetime,C# 4.0,Wpf 4.0,我正在使用.NET4.0。我正在开发一个最初只针对美国的应用程序,但现在它变得全球化了。问题是: 在美国或其他国家进行的所有计算恰好都在各自的时区内。现在,当我们想要基于特定日期比较或过滤一些数据时,它们不匹配,因为整个日期的时间部分不同。我知道我们不能像文化一样实现应用程序范围的时区。但是有没有一种方法可以对代码进行最小的更改,并在整个应用程序中只比较DateTime属性的日期部分 当印度用户检查时,保存在美国时区中的日期如下所示: 2014年10月23日上午09:30:00 现在,当印度用户

我正在使用.NET4.0。我正在开发一个最初只针对美国的应用程序,但现在它变得全球化了。问题是: 在美国或其他国家进行的所有计算恰好都在各自的时区内。现在,当我们想要基于特定日期比较或过滤一些数据时,它们不匹配,因为整个日期的时间部分不同。我知道我们不能像文化一样实现应用程序范围的时区。但是有没有一种方法可以对代码进行最小的更改,并在整个应用程序中只比较DateTime属性的日期部分

当印度用户检查时,保存在美国时区中的日期如下所示:

2014年10月23日上午09:30:00

现在,当印度用户想要过滤2014年10月23日的数据时,不会返回任何内容,因为:

2014年10月23日09:30:00 AM不等于2014年10月23日12:00:00 AM


我不想在整个应用程序中对DateTime属性进行数千次的更改,是否有一种方法可以通过对整个应用程序进行最小的代码更改来纠正这个问题。非常感谢您的帮助。

这听起来可能很疯狂,我不知道这是否适用于您的所有代码。特别是如果您有第三方库

但是如果在
系统
名称空间下向项目添加结构 并将其命名为
DateTime
,然后它将覆盖真实的
系统。DateTime
的使用将有一个闪烁的下划线,并显示一条消息,表示它与原始系统冲突,正在使用您的系统

我不认为这是一个好主意,但如果你复制日期时间代码并改变你需要的 这也许行得通


我希望得到一个代码更改最少的解决方案。此链接中提供的解决方案要求在整个应用程序中的每个日期时间比较中进行代码更改。Ctrl+F?我不知道如果你不更改代码,你怎么会期望代码突然开始表现出不同的行为…@NavneetDuggal你的问题并不取决于应用程序用户处于不同的时区。如果您在印度当地时间2014年10月23日上午09:30:00保存文件,然后在印度通过查找值2014年10月23日上午12:00:00来搜索2014年10月23日保存的文件,您仍然无法找到该文件。除非您将日期时间实际保存为(转换/格式化)字符串-在线程上设置正确的区域性听起来像是显示日期时间的一种方式。