Tag: datetime

如何比较DateTime值,考虑到时区?

我有两个DateTime变量。 每个都有一个存储在变量中的时区,这样当我使用包含zzz的格式的ToString ,我得到一个包含+01:00的字符串。 在设计时我不知道时区是什么,我期望变量彼此具有不同的时区。 我想比较两个DateTime值,以便我知道哪个更新。 例如,如果变量A是2015-07-04T02:00:00+03:00 ,变量B是2015-07-03T18:00:00-07:00那么B> A. 我用C#写什么告诉我这个? (我不想使用第三方库。) (对于SO问题关闭狂热者:我花了几个小时使用谷歌,MSDN和SO进行调查,我很困惑。我在SO上找不到一个非常相似的问题。我相信这个问题的答案会对其他人有所帮助。 )

年,月,日2天之间的差异

我需要输出两年,几个月和几天之间的差异。 使用timepan和subtract我只能获得日期,但是可以按年,月和日输出。 这是我到目前为止: public string Leeftijdsverschil(DateTime p1, DateTime p2) { if (p1 > p2) { DateTime verschil = p1.Subtract(TimeSpan.FromTicks(p2.Ticks)); return verschil.ToString(); } else { DateTime verschil = p2.Subtract(TimeSpan.FromTicks(p1.Ticks)); return verschil.ToString(); } }

.NET进程如何获取文化信息?

我在Windows Server 2003 R2上运行了一个Windows服务(C# ,. NET 2.0)。 在一台服务器中, System.Threading.Thread.CurrentThread.CurrentCulture为{en-AU},另一台为{en-US}。 这在DateTime对象上调用ToString()时会产生差异。 我希望文化是{en-AU}。 我检查了“区域和语言设置”。 在两个服务器中,“区域选项”选项卡显示“英语(Asutralia)”。 但在“高级”标签中,其中一个显示“英语(美国)”,另一个显示“英语(澳大利亚)”。 所以这必然会造成差异。 虽然我想知道为什么“高级”选项卡上写着“你想要使用的非unicode程序的语言版本”,但我认为.NET进程是Unicode,不应受此影响。 .NET运行时如何确定要使用的区域性? 任何详细的参考都会有所帮助。

如何将短日期字符串转换回DateTime对象?

我有2个DateTime对象,使用ToShortDateString()函数后保存到文件中; 字符串看起来像“12/15/2009”。 我现在卡在这一部分,我想用这些字符串初始化DateTime对象,以便我可以比较日期日期之间的时间跨度。 任何帮助赞赏。

ASP.NET C#MVC – 直接在DB或Model上更改datetime的格式

我正在努力寻找一种简单的方法来改变我的Table字段的DateTime格式。 我有一个名为Article的模型,其中包含一个名为releaseDate的字段,它是一个DateTime 我设法通过转换来实现(视觉上) Article.releaseDate.ToString(“dd/MM/yy”) 但问题是,当我尝试使用此格式从创建操作提交日期时,它会返回错误,告知格式错误。 有什么简单的方法可以将默认值(“MM / dd / yy”)更改为(“dd / MM / yy”) ? 提前致谢

在C#中获取ACTUAL日期时间而不是系统日期时间

我正在构建的应用程序的一部分应仅在特定时间段内访问。 我知道我们可以使用C#中的DateTime属性获取当前系统时间。 如果我使用DateTime属性,那么用户可以随时更改系统时间并访问应用程序的一部分。 请告诉我如何在C#中获取ACTUAL当前时间。

删除DateTime.ParseExact的时区

我试图使用以下格式将字符串解析为日期时间: [日],[日期] [月] [年] [时间] [上午/下午] [时区](例:) “美国东部时间2011年12月1日星期四08:30” 我使用DateTime.ParseExact以格式(“dddd,dd MMM yyyy hh:mmtt”)完成了这项工作。 然而,timzone给了我一个问题。 没有用于读取以这种方式编写的时区的代码。 我无论如何都不关心时区,所以我想要将它删除或读取它 – 只要parsexact能够工作。 删除它的一种方法是实际将其从字符串中删除(使用.Replace) – 但是我不知道源将产生多少个不同的时区,无论如何,我认为替换的长行看起来很丑陋且容易出错。 那么有没有一种方法可以删除它,或者阅读它(然后我可以忽略它)?

C#将时间分成小时块

我需要一些帮助才能将2个日期时间拆分为它们之间的小时间隔。 这与“付费”数据有关,因此需要非常准确。 我需要使用clockin和clockout,并将它们分成小时间隔。 例: clockin = 5/25/2011 1:40:56 PM clockout = 5/25/2011 6:22:12 PM 我需要它看起来像: 2011年5月25日下午1:40:56 5/25/2011 2:00:00 PM 5/25/2011 3:00:00 PM 2011年5月25日下午4:00:00 5/25/2011 5:00:00 PM 5/25/2011 6:00:00 PM 5/25/2011 6:22:12 PM 然后,我计划在“差异”表格中查看这些时间,看看他们应该有一个新的付费代码。 但我稍后会担心付费代码。 什么帮助分裂时代? 喜欢C#,但我也可以访问MSSQL2000(这是我们拉原始时间的地方)

NewtonSoft.Json自定义JsonConverter反序列化为DateTime不起作用

我试图将Unix timestamp反序列化为DateTime 。 在我的情况下,我需要做更多的检查才能从时间戳设置属性到DateTime。 如果我使用Newtonsoft.Json DateTime ,它将它反序列化为UTC时间,我需要将其反序列化为特定的时区 问题是我无法得到正确的时间。 似乎我的字符串long解析失败了。 如果我可以得到long unix时间戳,我可以让其余的逻辑工作 我有一个名为Alert的课程 class Alert { // Some properties [JsonConverter(typeof(UnixTimestampJsonConverter))] public DateTime Created { get; set; } // Some more properties } UnixTimestampJsonConverter类是 class UnixTimestampJsonConverter : JsonConverter { // Other override methods public override object ReadJson (JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if […]

c#和日期文化问题

我写了一个asp.net应用程序,我的一个回发例程只是将用户提交的表单数据保存到sql 2005 db。 所有在我的开发机器上运行都很棒,但是当我部署到实时站点时,我的解析日期检查器的日期无效。 基本上它是期待在现场机器上的美国日期格式,但这不是我想要的。 用户需要能够以dd / MM / yyyy格式输入。 所以像21/10/2009这样的有效日期会在实时服务器上返回错误,但在我的开发机器上却不会。 下面是抛出exception的代码。 DateTime dt; dt = DateTime.Parse(sdate); //sdate in GB dd/MM/yyyy format 是否可以强制解析例程以dd / MM / yyyy格式预期日期?