由于datetime.now.tostring()写的太多了,于是就想在一个类里写个方法,其他页面统一实例化调用(避免代码重复嘛,C#不是如是说)。结果本地调试不起,IIS直接崩溃求解
代码重复

解决方案 »

  1.   

    由于我为了练习写Hello World,不小心把FBI的中央电脑搞崩溃了。
      

  2.   

    不懂你说的什么意思,你得先在本地把程序运行调试通过了,再发布到iis。
      

  3.   

    我估计你是把tostring()写成中文“土司吹”了,所以编译错误。
      

  4.   

    不调侃了,说正经滴!你不觉着你替换后的代码和替换前滴代码一样多么?一句话而已,还只是代码,不是逻辑。不值得这么搞滴呵呵,datetime.now.tostring() 节省成XXOO.getNow,意义不大啊
      

  5.   

    LZ在火车上跺了跺了脚,结果铁道系统整个崩溃。用debug看看那步错误。
      

  6.   

    频繁使用DateTime.Now开销确实比较大,如果只要求精确到秒的话,应该自己写个定时器处理。        /// <summary>
            /// 精确到秒的时间
            /// </summary>
            private static class nowTime
            {
                /// <summary>
                /// 精确到秒的时间
                /// </summary>
                public static DateTime Now;
                /// <summary>
                /// 刷新时间的定时器
                /// </summary>
                private static Timer timer = new Timer(1000);
                /// <summary>
                /// 刷新时间
                /// </summary>
                private static void refreshTime(object sender, ElapsedEventArgs e)
                {
                    Now = DateTime.Now;
                    timer.Interval = 1000 - Now.Millisecond;
                }
                static nowTime()
                {
                    Now = DateTime.Now;
                    timer.Elapsed += refreshTime;
                    timer.Start();
                }
            }
            /// <summary>
            /// 精确到秒的时间
            /// </summary>
            public static DateTime NowTime
            {
                get { return nowTime.Now; }
            }toString也给你一个参考        /// <summary>
            /// 每毫秒计时周期数
            /// </summary>
            public const long MillisecondTicks = 10000;
            /// <summary>
            /// 一天的计时周期数
            /// </summary>
            public const long DayTiks = 24L * 60L * 60L * 1000L * MillisecondTicks;
            /// <summary>
            /// 16位除以10转乘法的乘数
            /// </summary>
            public const uint Div10_16Mul = ((1 << 19) + 9) / 10;
            /// <summary>
            /// 16位除以10转乘法的位移
            /// </summary>
            public const int Div10_16Shift = 19;
            /// <summary>
            /// 32位除以60转乘法的乘数
            /// </summary>
            public const ulong Div60_32Mul = ((1L << Div60_32Shift) + 59) / 60;
            /// <summary>
            /// 32位除以60转乘法的位移
            /// </summary>
            public const int Div60_32Shift = 21 + 32;
            /// <summary>
            /// 16位除以60转乘法的乘数
            /// </summary>
            public const uint Div60_16Mul = ((1U << Div60_16Shift) + 59) / 60;
            /// <summary>
            /// 16位除以60转乘法的位移
            /// </summary>
            public const int Div60_16Shift = 21;
            /// <summary>
            /// 时间转换成字符串(精确到秒)
            /// </summary>
            /// <param name="time">时间</param>
            /// <returns>时间字符串</returns>
            public unsafe static string toString(this DateTime time)
            {
                char* chars = stackalloc char[20];
                toString(time, time.Ticks % DayTiks, chars);
                return new string(chars, 0, 19);
            }
            /// <summary>
            /// 时间转换成字符串(精确到秒)
            /// </summary>
            /// <param name="time">时间</param>
            /// <param name="dayTiks">当天的计时周期数</param>
            /// <param name="chars">时间字符串</param>
            private unsafe static void toString(DateTime time, long dayTiks, char* chars)
            {
                int data0 = time.Year, data1 = (data0 * (int)number.Div10_16Mul) >> number.Div10_16Shift;
                data0 -= data1 * 10;
                int data2 = (data1 * (int)number.Div10_16Mul) >> number.Div10_16Shift;
                data1 -= data2 * 10;
                int data3 = (data2 * (int)number.Div10_16Mul) >> number.Div10_16Shift;
                data2 -= data3 * 10;
                data0 += '0';
                data1 += '0';
                data0 <<= 16;
                *(int*)(chars + 2) = (data1 += data0);
                data2 += '0';
                data3 += '0';
                data2 <<= 16;
                *(int*)chars = (data3 += data2);            data0 = time.Month;
                data1 = (data0 + 6) >> 4;
                data0 -= data1 * 10;
                data1 += '0';
                data0 += '0';
                data1 <<= 16;
                *(int*)(chars + 6) = (data0 += ('/' << 16));
                *(int*)(chars + 4) = (data1 += '/');            data0 = time.Day;
                data1 = (data0 * (int)number.Div10_16Mul) >> number.Div10_16Shift;
                data0 -= data1 * 10;
                data1 += '0';
                data0 += '0';
                data0 <<= 16;
                *(int*)(chars + 8) = (data1 += data0);            data3 = (int)(dayTiks / (1000 * 10000));
                data2 = (int)(((ulong)data3 * Div60_32Mul) >> Div60_32Shift);
                data3 -= data2 * 60;
                data0 = (data2 * (int)Div60_16Mul) >> Div60_16Shift;
                data2 -= data0 * 60;            data1 = (data0 * (int)number.Div10_16Mul) >> number.Div10_16Shift;
                data0 -= data1 * 10;
                data1 += '0';
                data0 += '0';
                data1 <<= 16;
                *(int*)(chars + 12) = (data0 += (':' << 16));
                *(int*)(chars + 10) = (data1 += ' ');            data1 = (data2 * (int)number.Div10_16Mul) >> number.Div10_16Shift;
                data2 -= data1 * 10;
                data1 += '0';
                data2 += '0';
                data2 <<= 16;
                *(int*)(chars + 14) = (data1 += data2);            data1 = (data3 * (int)number.Div10_16Mul) >> number.Div10_16Shift;
                data3 -= data1 * 10;
                data1 += '0';
                data3 += '0';
                data1 <<= 16;
                *(int*)(chars + 18) = data3;
                *(int*)(chars + 16) = (data1 += ':');
            }
      

  7.   

    楼主自己随便写个控制台程序,看看循环输出DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")会不会有问题。我怎么循环执行1W次都是1秒不到,10次也就是4、5秒左右,所以觉得你的问题不是出在多次读取DateTime.Now上