Tag: datetime

DateTime.AddDays()无法按预期工作

我有这个简单的程序: DateTime aux = new DateTime(2012, 6, 12, 12, 24, 0); DateTime aux2 = new DateTime(2012, 6, 12, 13, 24, 0); aux2.AddDays(1); Console.WriteLine((aux2 – aux).TotalHours.ToString()); Console.ReadLine(); 我调试了这个并找到了aux2.AddDays(1); 似乎不起作用,我在这里缺少什么? 它应该返回25,但答案是一个。 问题是什么? 另外AddHours不起作用,我猜其他人也不行。

在数据库中将日期/时间存储为UTC

我将数据库中的日期/时间存储为UTC,并根据特定时区将它们在我的应用程序中计算回本地时间。 比方说我有以下日期/时间: 01/04/2010 00:00 比如说它是一个国家,例如英国,它遵守DST(夏令时),在这个特定的时间,我们在夏令时。 当我将此日期转换为UTC并将其存储在数据库中时,它实际存储为: 31/03/2010 23:00 因为DST的日期将调整为-1小时。 当您在提交时观察DST时,此工作正常。 但是,当时钟调整回来时会发生什么? 当我从数据库中提取该日期并将其转换为当地时间时,特定日期时间将被视为31/03/2009 23:00 ,而实际上它被处理为01/04/2010 00:00 。 如果我错了,请纠正我但是在存储UTC时间时这不是一个缺陷吗? 时区转换的示例 基本上我正在做的是存储信息提交到我的系统的日期/时间,以便允许用户进行范围报告。 这是我存储日期/时间的方式: public DateTime LocalDateTime(string timeZoneId) { var tzi = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId); return TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzi).ToUniversalTime().ToLocalTime(); } 存储为UTC: var localDateTime = LocalDateTime(“AUS Eastern Standard Time”); WriteToDB(localDateTime.ToUniversalTime());

是否有一个简单的函数可以将日期时间向下舍入到最接近的30分钟,在C#中?

例如: 2011-08-11 16:59成为2011-08-11 16:30

在C#,。NET 4.0中解析RFC1123格式的日期

我试图解析RFC1123格式的日期(星期四,2010年1月21日17:47:00美国东部时间)。 这是我尝试但没有效果: DateTime Date = DateTime.Parse(dt); DateTime Date = DateTime.ParseExact(dt, “r”, null);

带有.Years和.Months的Real Timespan对象

请考虑以下两种情况:场景1)。 今天是2012年5月1日,场景2)。 今天是2012年9月1日。 现在,请考虑我们在我们的网页上写下以下关于某人留下的评论:“此评论是在3个月和12天前写的”。 即使声明完全相同,这两种情况下的天数也总是不同。 在情景1中,“3个月和12天”将等于102 days 。 但是,在场景2中,“3个月和12天”将是104 days ! 现在,谈谈我的观点,让我们使用一个不同的例子,并说有人在2013年1月30日在我们的网站上留下评论,今天是2013年3月10日。我们真实的TimeSpan对象需要知道这个相对日期,并且可以计算以下内容: 三月有10天, 1月1日(从30日到31日)。 2月是一个月,不管它有多少天(即使它是28天)。 所以,这意味着10天+ 1天+ 1个月总计,转换为此This comment was posted 1 Month and 11 Days ago 。 现在,如果您使用MS样式的TimeSpan对象(或任何语言的任何TimeSpan对象),它将为您提供从1月30日到3月10日(39天)的天数,并且因为TimeSpan对象不存储相对日期(我们减去获得TimeSpan的基数/初始日期),如果你问它有多少个月和几天,它会假设一个月内有30天,甚至最差,大于30天的平均值,并在几天内返回其余的,所以要到39天,它会告诉你它已经是1个月和9天,你会得到This comment was posted 1 Month and 9 Days ago消息。 请记住,这两种情况都具有相同的开始日期和相同的当前/结束日期,是Microsoft TimeSpan对象,不允许我们告诉它应该考虑2013年2月,给了我们一个完全不同的TimeSpan,关闭整整2天。 它实际上对我们撒了谎。 问题是,人们会相信这一点,谁知道他们可能有什么看法,他们对过去的看法如何改变,以及他们在尝试重建过去内部事件时可能做出的决定和生活选择,而从不注意或理解代表时间的缺点和固有的失败,这在当今无处不在。 他们不会理解编程语言没有实现(或关心)上个月有31天,反对30,29或28 – 反之亦然,并且当你增加TimeSpan时这会增加。 这是本文的核心问题。 我知道大多数人都不会关心这种差异(但要确保我们有些人这样做,并且不能在我们背上这样做),如果这不打扰你,那没关系。 我希望它不会打扰我,我会节省一些时间,压力和失望。 如果这不是一个麻烦,您可以使用该function有效地文本显示相对时间(可定制为从几秒到几年的1到6个节点),而不是使用它提供的通常可忽略的精度。 令我失望的是,我注意到没有真正的时间跨度对象,如果你得到一个时间跨度,做一个.years或.months你什么也得不到,你只会得到.days和更低,因为timeSpan对象不携带什么都可以告诉它创建时间的是哪个月或哪一年。 因此,它永远不会真正知道自每个月的日子在一年内变化多少个月,甚至超过闰年。 为此,我将发布一个我开发的函数,以获得准确的读数,并能够在我的ASP.NET网页上返回如下内容… 发表于4年,3个月,14天,15小时,18分钟和24秒之前 我想有一个…… timeSpan.GetActualNumberOf[Months/Days/Hours/etc] […]

WPF工具包DatePicker仅限月/年

我正在使用上面的Toolkit的Datepicker,但我想将其限制为仅限月份和年份,因为在这种情况下用户不知道或不关心确切的日期。显然,数据存储在Datetime中格式会有一天存储,但这与我无关。 有没有一种简单的方法来解决这个问题? 谢谢

C#.NET中的模糊日期时间选择器控件?

我正在C#中为winforms应用程序实现模糊日期控件。 模糊日期应该能够采用类似的模糊值 去年六月 2小时前 2个月前 上个星期 昨天 去年 等等 是否有“模糊”日期时间选择器的任何示例实现? 任何实现这种控制的想法都将受到赞赏 PS :我知道这里和这里所说的模糊日期算法,我真的在寻找开发这种控制的任何想法和灵感

使用C#将字符串转换为datetime

如何将字符串像20100102转换为dd / MM / yyyy格式的datetime?

C#日期格式化正在丢失斜杠分隔符

如果我在C#中这样做: Console.WriteLine(DateTime.Now.ToString(“ddd M/dd/yy”)); 我希望输出像这样: Wed 6/15/11 但它实际输出这个: Wed 6 15 11 为什么斜线消失了? 有没有办法防止这种情况,并以预期的格式输出日期?

我想在当前时间添加小时或分钟

我想把时间增加到现在的时间。 例如,我有问题的时间和完成它们的预期时间 我该如何添加? (DateTime.Now.ToShortDateString() +…….)