[英]what is the c# equivalent of Calendar in java?
我正在將Java轉換為C#,並且需要轉換涉及Calendar的代碼:
Calendar rightNow = Calendar.getInstance();
StringBuilder sb = new StringBuilder();
sb.append((rightNow.get(Calendar.MONTH) + 1));
sb.append(rightNow.get(Calendar.DAY_OF_MONTH));
sb.append(rightNow.get(Calendar.YEAR)).substring(2);
sb.append(rightNow.get(Calendar.HOUR_OF_DAY));
sb.append(rightNow.get(Calendar.MINUTE));
更多編輯由於應該使用兩種可能的方法(System.DateTime和Calendar)? (我在這里回顧了Java宇宙中的問題)
響應摘要對於簡單使用,System.DateTime是合適的,並且沒有Java的Date問題。 應該有一個通話,以防日期在通話之間滴答作響。
您正在尋找System.DateTime
結構。
sb.Append(DateTime.Now.AddMonths(1).ToString("MMddyyHHmm"));
正如Joel Coehoorn指出的那樣,您可以將該代碼壓縮為一行。 我對實現變得如此着迷,沒有看到您實際上要做什么—幸運的是,喬爾指出了這一點。
這會將所有這些匯總為一個呼叫。 很漂亮
要將Java代碼轉換為C#,您需要執行以下操作:
string year = DateTime.Now.Year.ToString();
sb.Append(DateTime.Now.AddMonths(1));
sb.Append(DateTime.Now.Day);
sb.Append(year.Substring(2));
sb.Append(DateTime.Now.Hour);
sb.Append(DateTime.Now.Minute);
您可以復制/粘貼此C#代碼以查看:
StringBuilder sb = new StringBuilder();
string year = DateTime.Now.Year.ToString();
sb.Append(String.Format("Next Month is: {0} \n ",DateTime.Now.AddMonths(1)));
sb.Append(String.Format("Day is {0}\n ", DateTime.Now.Day));
sb.Append(String.Format("Year is {0}\n ", year.Substring(2)));
sb.Append(String.Format("The Hour is {0}\n ", DateTime.Now.Hour)); //getting late
sb.Append(String.Format("The Minute is {0}\n ", DateTime.Now.Minute));
DateTime
結構沒有與Java的日期實現相同的問題; 因此,您不應遇到困擾Java世界的相同問題。
正如另一個用戶指出的那樣 ,您也可以使用System.Globalization.Calendar
類。 我與DateTime
結構很好地相處,並且比Calendar類輕一些,但是它們都可以使用。 如果您打算跳過日期和日歷的實現,請使用Calendar
類; 如果您要堅持使用日期的一種實現,那么DateTime
struct
就可以了。
System.DateTime
喜歡:
DateTime now = DateTime.Now;
DateTime tommorowsTomorrow = now.AddDays(2);
等等。
還有Calendar 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.