簡體   English   中英

Java中Calendar的C#等效項是什么?

[英]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問題

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM