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); }