2011-03-11 16 views
1

我有以下函數「Format」將格式「MM/dd/yyyy」中的日期轉換爲MMddyyyy。 該功能適用​​於以下數據,但如果我想將日期從「MM/dd/yyyy」轉換爲CCYYDDD,則該功能無效。這個函數應該做什麼來支持Julian日期轉換?謝謝你的幫助!如何將日期從格式MM/dd/yyyy轉換爲Julian格式CCYYDDD?

string Value = "03/11/2011"; 
string formatType = "System.DateTime"; 
string outputformat = "MMddyyyy"; 

Value = Format(formatType, Value, outputformat); 

private static string Format(string typename, string value, string format) 
    { 
     Type t = Type.GetType(typename); 

     System.Reflection.MethodInfo infoParse = t.GetMethod("Parse", new Type[] { typeof(string) }); 
     object o = infoParse.Invoke(null, new object[] { value }); 

     System.Reflection.MethodInfo infoToString = t.GetMethod("ToString", new Type[] { typeof(string) }); 

     return infoToString.Invoke(o, new object[] { format }) as string; 
    } 
+1

爲什麼反射代碼?你不能直接使用DateTime對象嗎? – randbrown 2011-03-11 21:13:00

+0

同樣的函數也用於其他轉換,所以我們使用反射。 – Jyina 2011-03-11 21:22:37

+1

我的建議是獨立處理不同的類型,而不是試圖用反射來推廣。 DateTime還有其他有用的方法,例如ParseExact,並且它還有DayOfYear屬性,它將爲您提供所需的DDD部分。 – randbrown 2011-03-11 21:27:56

回答

0

使用輸出格式「yyyyddd」。

相關問題