Nullable<System.DateTime>日期格式转换 (转载)

 

 

一、问题

 1、html页面中时间显示出错,数据库中时间是正确的。

   原因:没有把DateTime转成String类型。

 2、  在C#中,发现不能直接使用ToString("yyyy-MM-dd HH:mm")这样的格式进行日期格式转换。

    原因:在DB中,字段设置为Nullable<System.DateTime>,是可空的DateTime类型。

 

二、解决方案

  if (user.BirthDate.HasValue)
  {
    userInfo.BirthDate = user.BirthDate.Value.ToString("yyyy-MM-dd");
  }else
  {
    userInfo.BirthDate = string.Empty;
  }

三、完整案例

        public UserInfo GetUserNoPasswordByUserName(string userName)
        {
            
            var user= db.T_User.Select(d => new  { Address = d.Address, BirthDate = d.BirthDate, Company = d.Company, Phone = d.Phone, RealName = d.RealName, TelPhone = d.TelPhone, TypeID = d.TypeID, UserID = d.UserID, UserName = d.UserName, UserStatus = d.UserStatus }).Where(d => d.UserName == userName).SingleOrDefault();
            UserInfo userInfo = new UserInfo();
            userInfo.Address = user.Address;
            if (user.BirthDate.HasValue)
            {
                userInfo.BirthDate =  user.BirthDate.Value.ToString("yyyy-MM-dd");
            }else
            {
                userInfo.BirthDate = string.Empty;
            }
            userInfo.Company = user.Company;
            userInfo.Phone = user.Phone;
            userInfo.RealName = user.RealName;
            userInfo.TelPhone = user.TelPhone;
            userInfo.TypeID = user.TypeID;
            userInfo.UserID = user.UserID;
            userInfo.UserName = user.UserName;
            userInfo.UserStatus = user.UserStatus;
         
            return userInfo;

        }

  

//自定义视图数据类   
 public class UserInfo
    {
        public int UserID { get; set; }
        public string UserName { get; set; }
        public Nullable<short> TypeID { get; set; }
        public short UserStatus { get; set; }
       // public string Password { get; set; }
        public string RealName { get; set; }
        public string Company { get; set; }
        public string BirthDate { get; set; }
        public string Phone { get; set; }
        public string TelPhone { get; set; }
        public string Address { get; set; }
    }

  

   //数据实体类  
   public partial class T_User
    {
    
        public int UserID { get; set; }
        public string UserName { get; set; }
        public Nullable<short> TypeID { get; set; }
        public short UserStatus { get; set; }
        public string Password { get; set; }
        public string RealName { get; set; }
        public string Company { get; set; }
        public Nullable<System.DateTime> BirthDate { get; set; }
        public string Phone { get; set; }
        public string TelPhone { get; set; }
        public string Address { get; set; }

    }

  

转载来源:https://blog.csdn.net/baidu_34331194/article/details/68944906

 

转载于:https://www.cnblogs.com/hao-1234-1234/p/8857282.html

好的,以下是使用C#在VS2017中创建一个HTML文件,并实现将发送和接收的UDS报文写入到文件中,并根据UDS协议的通过与否,在HTML中以相应的颜色显示结果的示例代码: ```csharp using System; using System.IO; namespace UDSLogFile { class Program { static void Main(string[] args) { string logFileName = "log.html"; string logFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, logFileName); // 创建HTML文件 CreateHTMLFile(logFilePath); // 模拟发送和接收UDS报文 bool isUDSPassed = true; // UDS协议是否通过的标志位 // 获取当前时间 string currentTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // 写入发送报文 string sendMsg = "发送的UDS报文"; WriteLog(logFilePath, currentTime, sendMsg); // 写入接收报文 string recvMsg = "接收的UDS报文"; WriteLog(logFilePath, currentTime, recvMsg); // 判断UDS协议是否通过,并根据结果写入HTML文件 if (isUDSPassed) { WriteLog(logFilePath, currentTime, "PSAA", "green"); } else { WriteLog(logFilePath, currentTime, "FAIL", "red"); } Console.WriteLine("日志已写入到文件:" + logFilePath); } // 创建HTML文件 static void CreateHTMLFile(string filePath) { using (StreamWriter sw = File.CreateText(filePath)) { sw.WriteLine("<html>"); sw.WriteLine("<body>"); sw.WriteLine("<table border='1'>"); sw.WriteLine("<tr>"); sw.WriteLine("<th>时间</th>"); sw.WriteLine("<th>报文</th>"); sw.WriteLine("<th>结果</th>"); sw.WriteLine("</tr>"); sw.WriteLine("</table>"); sw.WriteLine("</body>"); sw.WriteLine("</html>"); } } // 向HTML文件中写入日志 static void WriteLog(string filePath, string time, string message, string color = "") { using (StreamWriter sw = File.AppendText(filePath)) { sw.WriteLine("<tr>"); sw.WriteLine("<td>" + time + "</td>"); sw.WriteLine("<td>" + message + "</td>"); if (!string.IsNullOrEmpty(color)) { sw.WriteLine("<td style='color:" + color + "'>" + message + "</td>"); } else { sw.WriteLine("<td>" + message + "</td>"); } sw.WriteLine("</tr>"); } } } } ``` 这段代码将在程序运行时,创建一个名为"log.html"的HTML文件,并在表格中记录发送和接收的UDS报文。根据UDS协议的通过与否,使用绿色或红色的字体显示结果。你可以根据实际情况修改和扩展这段代码。运行程序后,日志将被写入到与程序同级目录下的"log.html"文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值