我正在为ssis包编写一个C#脚本,我在英国服务器上运行它,但我希望以yyyMMdd格式获取美国格式的日期时间。
但是当我执行datevariablename.ToString(" yyyyMMdd")时,它返回格式为yyyyddMM的字符串。我甚至尝试使用DateTime的Month,Day和Year方法,但它仍然给出了作为月份和月份作为日期的日期。
有谁知道如何以yyyyMMdd格式返回字符串?以下是我的代码片段:
private static readonly string[] dateFormat = { "M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss",
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt",
"M/d/yyyy h:mm", "M/d/yyyy h:mm",
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
"d/M/yyyy h:mm:ss tt", "d/M/yyyy h:mm tt",
"dd/MM/yyyy hh:mm:ss", "d/M/yyyy h:mm:ss",
"d/M/yyyy hh:mm tt", "d/M/yyyy hh tt",
"d/M/yyyy h:mm", "d/M/yyyy h:mm",
"dd/MM/yyyy hh:mm", "dd/M/yyyy hh:mm"
};
public void Main()
{
// TODO: Add your code here
Dts.TaskResult = (int)ScriptResults.Success;
var date = DateTime.Now;
var date2 = DateTime.Now;
var inputDate = Dts.Variables[dateUnformated].Value;
if (DateTime.TryParseExact(inputDate.ToString(), dateFormat, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out date))
{
var yyyymmdd = date.Year.ToString() + date.Month.ToString("0#") + date.Day.ToString("0#");
Dts.Variables[Date1].Value = yyyymmdd;
Dts.Variables[Date2].Value = date.ToString("yyyyMMdd");
}
答案 0 :(得分:1)
你试过这个吗?
DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
答案 1 :(得分:0)
尝试使用DateTime.ParseExact
方法 See the Demo 实施:
string strDate = "09-Aug-2016";
DateTime datDate;
if (DateTime.TryParseExact(strDate, new string[]
{
"dd-MMM-yyyy"
}
, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out datDate))
{
Console.WriteLine(datDate.ToString("yyyy/MM/dd"));
}
else
{
//Error in datetime format
}
甚至更简单 See the Demo :
DateTime datetime = DateTime.Now;
Console.WriteLine(datetime.ToString("yyyy/MM/dd"));
答案 2 :(得分:0)
所以还有一件事需要考虑。如果您查看SSMS或Excel中的日期或....它将使用您的计算机文化,因为datetime是一个对象而不是字符串,您的计算机设置告诉智能程序如何显示它。
所以如果Date1变量数据类型是date或datetime数据类型,你仍然会得到错误的格式。您可以将Date1 var更改为string以查看结果,或者您可以将结果转储到文本文件并在记事本或其他内容中打开。
乍一看,@ Ozan对于您更有效地设置格式有一个很好的答案。