Ich schreibe ein C# -Skript für ein SSIS-Paket und ich führe es auf einem UK-Server, aber ich möchte eine Datetime im US-Format im Format yyyMMdd bekommen.Cross Country/Region DateTime Formatierung
Aber wenn ich datevariablenname.ToString ("yyyyMMdd"), gibt es eine Zeichenfolge im Format YyyyddMM. Ich habe sogar versucht, indem ich die Monats-, Tages- und Jahresmethoden von DateTime benutzte, aber es gibt immer noch den Tag als Monat und den Monat als Tag.
Weiß jemand, wie ich die Zeichenfolge im Format JJJJMMTD zurückgegeben bekommen kann? Unten ist ein Ausschnitt meines Codes:
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");
}
Verwenden Sie 'DateTime.ParseExact' –
Füttern Sie es eine gemischte Liste von M/d und d/M-Formate wie das bedeutet, dass es die erste findet es findet, die leicht falsch sein kann 12 Tage im Monat – Plutonix
@Plutonix gut Punkt, ich sehe es immer noch gültig, solange die Liste in der gewünschten Reihenfolge angeordnet ist. Denn schließlich kann Ihnen niemand sagen, 1/1/2016 vs 1/1/2016 (MM/TT/JJJJ vs TT/MM/JJJJ), wenn der Monat und der Tag identisch sind :) – Matt