前两天碰到一件奇怪的问题,记录下来以供自己和大家参考。开发平台vs2017,开发语言C#。
用户要求上传ftp数据的日期格式是“时间:“文件内容更新时间”格式如“2010-11-12/12:23:21”。(时间格式前后统一),文件内容更新时间为实际生成该文件的时间;(年-月-日/时:分:秒):”,很简单,用Date.ToString("yyyy-MM-dd/hh:mm:ss"),在测试中没有问题(win7,win10),但是用户在windows2003server下,很奇葩的情况出现了“2010-11-12-12:23:21”,符号“/”变成了“-”,我去,怎么会这样?,转换会失效?加“//”做转义。也不行,并且在正常win7,10下出现了“//”,而在03下出现了“--”?加os版本判断,但是问题还是没有解决。
解决办法,自己搭建环境03+ftp,确定os判断正常,则问题应该出现在string格式转换上了,应该用"\\/"来转义。
活到老,学到老!