示例#1
0
        public void DateToolsRoundShouldKeepTheSameDateTimeKind()
        {
            var originalDate = DateTime.Parse("2014-04-25T09:33:15.6457886Z", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind);

            var roundedDate = DateTools.Round(originalDate, DateTools.Resolution.SECOND);

            var expectedTime = DateTime.Parse("2014-04-25T09:33:15Z", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind);

            Assert.Equal(expectedTime, roundedDate);
            Assert.Equal(expectedTime.Kind, roundedDate.Kind);
        }
示例#2
0
        public virtual void TestRound()
        {
            // we use default locale since LuceneTestCase randomizes it
            //Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"), Locale.Default);
            //cal.clear();
            DateTime cal = new DateTime(2004, 2, 3, 22, 8, 56, 333, new GregorianCalendar()); // hour, minute, second -  year=2004, month=february(!), day=3
            //cal.set(DateTime.MILLISECOND, 333);
            DateTime date = cal;

            Assert.AreEqual("2004-02-03 22:08:56:333", IsoFormat(date));

            DateTime dateYear = DateTools.Round(date, DateTools.Resolution.YEAR);

            Assert.AreEqual("2004-01-01 00:00:00:000", IsoFormat(dateYear));

            DateTime dateMonth = DateTools.Round(date, DateTools.Resolution.MONTH);

            Assert.AreEqual("2004-02-01 00:00:00:000", IsoFormat(dateMonth));

            DateTime dateDay = DateTools.Round(date, DateTools.Resolution.DAY);

            Assert.AreEqual("2004-02-03 00:00:00:000", IsoFormat(dateDay));

            DateTime dateHour = DateTools.Round(date, DateTools.Resolution.HOUR);

            Assert.AreEqual("2004-02-03 22:00:00:000", IsoFormat(dateHour));

            DateTime dateMinute = DateTools.Round(date, DateTools.Resolution.MINUTE);

            Assert.AreEqual("2004-02-03 22:08:00:000", IsoFormat(dateMinute));

            DateTime dateSecond = DateTools.Round(date, DateTools.Resolution.SECOND);

            Assert.AreEqual("2004-02-03 22:08:56:000", IsoFormat(dateSecond));

            DateTime dateMillisecond = DateTools.Round(date, DateTools.Resolution.MILLISECOND);

            Assert.AreEqual("2004-02-03 22:08:56:333", IsoFormat(dateMillisecond));

            // long parameter:
            long dateYearLong = DateTools.Round(date.Ticks / TimeSpan.TicksPerMillisecond, DateTools.Resolution.YEAR);

            Assert.AreEqual("2004-01-01 00:00:00:000", IsoFormat(new DateTime(dateYearLong)));

            long dateMillisecondLong = DateTools.Round(date.Ticks / TimeSpan.TicksPerMillisecond, DateTools.Resolution.MILLISECOND);

            Assert.AreEqual("2004-02-03 22:08:56:333", IsoFormat(new DateTime(dateMillisecondLong)));
        }
 /// <summary>
 /// Returns the ticks to be indexed, then use NumericRangeQuery to query against it
 /// </summary>
 /// <param name="date"></param>
 /// <returns></returns>
 protected long DateToLong(DateTime date)
 {
     return(DateTools.Round(date, Resolution).Ticks);
 }