PowerShell:将MM/DD/YYYY格式转为MySQL DateTime(非字符串解析方式)
在PowerShell中无字符串解析转换日期格式到MySQL格式
嘿,这个需求很容易实现,咱们全程用PowerShell的日期对象原生能力来处理,完全不涉及字符串解析操作,具体步骤如下:
将输入的MM/DD/YYYY字符串转为DateTime对象
因为输入是美式日期格式,我们需要指定对应的文化信息来确保解析准确,避免系统默认文化差异导致的错误:# 示例输入日期 $inputDate = "03/16/2018" # 转换为DateTime对象 $dateObject = [DateTime]::ParseExact($inputDate, "MM/dd/yyyy", [System.Globalization.CultureInfo]::GetCultureInfo("en-US"))将DateTime对象格式化为MySQL支持的YYYY-MM-DD格式
直接调用日期对象的ToString方法,指定目标格式字符串即可:$mysqlFormattedDate = $dateObject.ToString("yyyy-MM-dd") # 输出结果:2018-03-16
简化版一行代码
如果想更简洁,可以把两步合并成一行:
$mysqlDate = [DateTime]::ParseExact("03/16/2018", "MM/dd/yyyy", [System.Globalization.CultureInfo]::GetCultureInfo("en-US")).ToString("yyyy-MM-dd")
为什么这不是字符串解析?
这里的核心是我们先把输入字符串转换成了真正的DateTime对象,所有格式转换都是基于日期对象的原生方法,没有手动去拆分字符串中的月、日、年字段,也没有做字符串拼接操作,完全符合你“不使用字符串解析”的要求。
内容的提问来源于stack exchange,提问作者Kellen Stuart




