zoukankan      html  css  js  c++  java
  • 关于DateTime和String转换的容易犯得错误

    字符串转换成DateTime
     
    在开发中,常常会有DataTime类型和String类型的互相转换的要求,比较常用的写法是
    var date = Convert.ToDateTime("2012/06/08 09:10:10");
     
     
    咋一看这个代码好像没有什么问题, 实际运行也没发现问题。但是客户的机器上却是有转换的异常。
    后来经过调查发现,客户电脑上系统设置的CultureInfo是西班牙。这样代码会认为2012/06/08 09:10:10 不是一个合法的日期字符串。
     
    正确的写法应当是:
    var dtFormat = new DateTimeFormatInfo {LongDatePattern = "yyyy/MM/dd hh:mm:ss"}; //指定以特定格式转换成DateTime

    var date = Convert.ToDateTime("2012/06/08 09:10:10", _dtFormat)
     
     
    DateTime转换成字符串
    var dateString = System.DateTime.Now.ToString()
     
    这样转换的字符串同样会根据运行的系统的CultureInfo不同而有不同格式的输出。
    对于WCF, Web service, Ajax这样的客户端和服务端如果是不同的CultureInfo的情况下,非常容易出错。
     
    在转换成字符串的时候,加上CultureInfo.InvariantCulture
    var dateString = System.DateTime.Now.ToString(CultureInfo.InvariantCulture)
     
    同时在从字符串转换回来的时候,
    var date = DateTime.Parse(serverInfo.ServerDateTimeString, CultureInfo.InvariantCulture)
     
     
    这个CultureInfo有点像英语格式,但它不和国家地区挂钩,它可以提供一个可靠的在多语言环境下的规范格式化

  • 相关阅读:
    Jmeter基础元件
    Jmeter性能测试之添加思考时间
    Jmeter断言实例—响应断言
    Jmeter调试脚本之断言
    Jmeter调试脚本之关联
    jmeter调试脚本之变量参数化
    jmeter调试脚本之用户自定义变量
    XAMPP中Apache和Mysql启动失败问题总结
    Jmeter运行badboy录制的脚本
    Bugfree安装与使用
  • 原文地址:https://www.cnblogs.com/T-J-D/p/4447450.html
Copyright © 2011-2022 走看看