天下之事,必先处之难,而后易之。

重拾C#日常积累:DateTime日期的格式化和空值设置


C#时间格式化不同于Java,其格式化步骤偏复杂,C#DateTime API

 DateTime取空值类似三元表达式的用法:为了实现Nullable数据类型转换成non-Nullable型数据,就有了一个这样的操作符”??(两个问号)“,双问号操作符意思是取所赋值??左边的,如果左边为null,取所赋值??右边的.

比如int y = x ?? -1 如果x为空,那么y的值为-1.

示例代码如下:

        /// <summary>
        /// 平台下发远程录像回放请求(808协议:0x9201):此处成功与否仅表示指令是否成功发出
        /// </summary>
        /// <param name="IPAddress">服务器IP地址</param>
        /// <param name="TcpPort">服务器视频通道监听端口号(TCP)(不使用TCP传输时置0)</param>
        /// <param name="UdpPort">服务器视频通道监听端口号(UDP)(不使用UDP传输时置0)</param>
        /// <param name="Channel">逻辑通道号</param>
        /// <param name="MediaType">音视频类型(0:音视频,1:音频,2:视频,3:视频或音视频)</param>
        /// <param name="StreamType">码流类型(0:主码流或子码流,1:主码流,2:子码流;如果此通道只传输音频,此字段置0)</param>
        /// <param name="StorageType">存储器类型(0:主存储器或灾备存储器,1:主存储器,2:灾备存储器)</param>
        /// <param name="PlaybackMode">回放方式(0:正常回放,1:快进回放,2:关键帧快退回放,3:关键帧播放,4:单帧上传)</param>
        /// <param name="Multiple">快进或快退倍数(0:无效,1:1倍,2:2倍,3:4倍,4:8倍,5:16倍)</param>
        /// <param name="StartTime">开始时间(YYYY-MM-DD HH:MM:SS,回放方式为4时,该字段表示单帧上传时间)</param>
        /// <param name="EndTime">结束时间(YYYY-MM-DD HH:MM:SS,为0表示一直码回放,回放方式为4时,该字段无效)</param>
        /// <param name="IsAlwaysPlayback">是否一直回放</param>
        /// <returns>指令下发状态是否成功(bool),而非设备响应的结果是否成功,设备响应的结果从Redis中取到后异步发给ocx通过事件的方式响应前端页面</returns>
        public bool SendOrderToRequestPlaybackRemoteVideos(string IPAddress, int TcpPort, int UdpPort, byte Channel, byte MediaType, byte StreamType, byte StorageType, byte PlaybackMode, byte Multiple, string StartTime, string EndTime, bool IsAlwaysPlayback)
        {
            if (cheji==null||string.IsNullOrEmpty(IPAddress)|| string.IsNullOrEmpty(StartTime) || string.IsNullOrEmpty(EndTime))
            {
                return false;
            }
            DateTime? StartTime_=null, EndTime_=null;
            try
            {
                StartTime= Convert.ToDateTime(StartTime).ToString("yy-MM-dd-HH-mm-ss");
                StartTime_= DateTime.ParseExact(StartTime, "yy-MM-dd-HH-mm-ss", System.Globalization.CultureInfo.CurrentCulture);

                if (!StartTime.Equals("0"))
                {
                    EndTime = Convert.ToDateTime(EndTime).ToString("yy-MM-dd-HH-mm-ss");
                    EndTime_ = DateTime.ParseExact(EndTime, "yy-MM-dd-HH-mm-ss", System.Globalization.CultureInfo.CurrentCulture);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("DateTime转换错误,请检查格式是否满足DateTime的要求:" + ex.Message);
                return false;
            }
            return commander.Send0x9201( IPAddress,  (UInt16)TcpPort, (UInt16)UdpPort,  Channel,  (AudioVideoFlag)MediaType,  (StreamType)StreamType,  (MemoryType)StorageType,  PlaybackMode,  Multiple, (DateTime)StartTime_,(DateTime)EndTime_,  IsAlwaysPlayback);
        }

posted @ 2023-08-23 11:22  boonya  阅读(98)  评论(0)    收藏  举报  来源
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。