什么是Java中的日历的c#等价物?

pet*_*ust 6 c# java calendar

我正在将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));
Run Code Online (Sandbox Code Playgroud)

更多编辑因为我应该使用两种可能的方法(System.DateTime和Calendar)?(我记得Java宇宙中存在的问题)

响应摘要对于简单使用,System.DateTime是合适的,并且没有Java的Date问题.如果日期在呼叫之间向前拨号,则应该有一个呼叫.

Geo*_*ker 7

System.DateTime结构是你在找什么.

首选方式:

sb.Append(DateTime.Now.AddMonths(1).ToString("MMddyyHHmm"));
Run Code Online (Sandbox Code Playgroud)

正如Joel Coehoorn指出的那样,你可以将代码压缩到一行.我已经变得如此沉迷于实施,我没有看到你实际上想要做什么 - 幸运的是Joel指出了它.

这将把所有这些都推到一个电话中.很漂亮.

直接翻译(不推荐):

要将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);
Run Code Online (Sandbox Code Playgroud)

您可以复制/粘贴此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));
Run Code Online (Sandbox Code Playgroud)

关于DateTime的Java问题

DateTime结构与Java的日期实现没有相同的问题; 所以你不应该遇到困扰Java世界的同样问题.

其他方法

正如另一位用户指出的那样,您也可以使用System.Globalization.Calendar该类.我在DateTime结构上相处得很好,而且它比Calendar类重一点,但它们都可以使用.如果你要跳转日期和日历实现,那么去Calendar上课; 如果你要坚持一个日期的实现,那就DateTime struct没关系了.

  • 或者,更好的是,将所有这些浓缩为 DateTime.Now.AddMonths(1).ToString("MMddyyHHmm") (2认同)

Noo*_*ilk 6

System.DateTime
Run Code Online (Sandbox Code Playgroud)

喜欢:

DateTime now = DateTime.Now;
DateTime tommorowsTomorrow = now.AddDays(2);
Run Code Online (Sandbox Code Playgroud)

等等.