字符串转换成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有点像英语格式,但它不和国家地区挂钩,它可以提供一个可靠的在多语言环境下的规范格式化

关于DateTime和String转换的容易犯得错误的更多相关文章

  1. C# DateTime和String转换

    "; DateTime.ParseExact(time,"yyyyMMdd",System.Globalization.DateTimeFormatInfo.Curren ...

  2. python 中datetime 和 string 转换

    dt = datetime.datetime.strptime(string_date, fmt) fmt 的格式说明如下: https://docs.python.org/2/library/dat ...

  3. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

    在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...

  4. python 时间戳 datetime string 转换

    import datetime import time **datetime转时间戳** In [1]: now = datetime.datetime.now() In [2]: time.mkti ...

  5. python time,string 转换

    1. 将字符串转换成时间,字符串格式为05/16/2015 datetime.datetime.strptime(STRING,"%m/%d/%Y") 2. 将时间转换成字符串:格 ...

  6. ObjectId与DateTime的互相转换

    s会用mongdb中经常会需要用到通过“_id”去检查数据,筛选数据,但是想根据具体时间的id每次都需要做一下转换,这样搜索起来就很简单了. ObjectId转DateTime /// <sum ...

  7. DateTime和字符串转换问题

    DateTime和string之间的相互转换经常碰到,可就这么简单的一个转换其中也有些需要注意的地方. static void Main(string[] args) { string format ...

  8. python学习笔记(datetime、字符串转换)

    datetime对象与字符串可以互相转化 代码如下: from datetime import datetime def datetime_string(time): return time.strf ...

  9. C# DateTime和String(转)

    http://www.cnblogs.com/Pickuper/articles/2058880.html C#语言之“string格式的日期时间字符串转为DateTime类型”的方法 方法一:Con ...

随机推荐

  1. ubuntu 手动添加jar到本地仓库

    前言:maven仓库的下载速度太慢了,而且有些jar不存在,或者加入自己开发的依赖包,还是要学会自己手动加入jar.下面以 javax.servlet-api为例. 1.获取下载的javax.serv ...

  2. kvm usb2.0

    Virt-Manager adds support for usb2 Wednesday, April 4, 2012 - 10:40 Haydn Solomon The most recent re ...

  3. Yii框架中ActiveRecord使用Relations

    参考文章: http://blog.csdn.net/yjj1s/article/details/6885276 http://www.gowhich.com/blog/38 http://www.c ...

  4. 阅读STL源码剖析之list

    首先,以我之愚见,觉得有两个地方可以优化一下,不知对否,有待商榷: 1.在list的结点定义中 template<typename T> struct __list_node { type ...

  5. Delphi通过ICMP检测与远程主机连接

    { ping IP 地址(返回false or true) 2015-03-23} function PingHost(HostIP: String): Boolean; type PIPOption ...

  6. js读取本地磁盘文本文件并保存为JSON数据(有格式的文本)

    主要的代码是红色区域,HTML5获取本地文件对象并进行操作 //给上传按钮添加点击事件 $(".myappTXTUploadBtn").click(function(){ var ...

  7. tcpreplay安装使用

    #Author: ypguo#Data: 2010.4.23#Version:  1.2 增加了修改VLAN tag内容.                 1.1 修改了cygwin下安装的内容    ...

  8. AHCI vs NVMe

    http://www.hkepc.com/13139 儘管現時有不少高階 SSD 產品改用 PCIe 接口,以突破 SATA 接口的頻寬瓶頸,但控制器設計與 SATA  接口 SSD 一樣,採用老舊的 ...

  9. innodb_support_xa

    从官方解释来看,innodb_support_xa的作用是分两类: 第一,支持多实例分布式事务(外部xa事务),这个一般在分布式数据库环境中用得较多. 第二,支持内部xa事务,说白了也就是说支持bin ...

  10. Android 设计随便说说

    我曾经搞过应用程序的设计,当时只是读了半本宝典<重构...>,现在看来就这半本九阴真经,收益甚多啊 .再加上这现年工作上的印证,基本上可以拿出喷一下了.当然现在看来当年的项目设计真是很烂了 ...