static StdErrLog() { try { _dateCache = new DateCache("yyyy-MM-dd HH:mm:ss"); } catch (Exception e) { Console.Error.WriteLine(e.StackTrace); } }
public void TestDateCache() { DateCache dc = new DateCache("ddd, dd MMM yyyy HH:mm:ss zzz ZZZ", CultureInfo.CurrentCulture); dc.TimeZone = TimeZoneInfo.Utc; string last = dc.Format(DateTime.Now.Ticks); bool change = false; for (int i = 0; i < 15; i++) { Thread.Sleep(100); string date = dc.Format(DateTime.Now.Ticks); Assert.AreEqual(last.Substring(0, 17), date.Substring(0, 17), "Same Date"); if (!last.Substring(17).Equals(date.Substring(17))) { change = true; } else { int lh = int.Parse(last.Substring(17, 2)); int dh = int.Parse(date.Substring(17, 2)); int lm = int.Parse(last.Substring(20, 2)); int dm = int.Parse(date.Substring(20, 2)); int ls = int.Parse(last.Substring(23, 2)); int ds = int.Parse(date.Substring(23, 2)); // This won't work at midnight! change |= ds != ls || dm != lm || dh != lh; } last = date; } Assert.IsTrue(change, "time changed"); // Test string is cached dc = new DateCache(); string s1 = dc.Format(DateTime.Now.Ticks); dc.Format(1); string s2 = dc.Format(DateTime.Now.Ticks); dc.Format(DateTime.Now.Ticks + (10 * 60 * 60 * 1000)); string s3 = dc.Format(DateTime.Now.Ticks); Assert.IsTrue(s1 == s2 || s2 == s3); }