我正在将
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指出的那样,你可以将代码压缩到一行.我已经变得如此沉迷于实施,我没有看到你实际上想要做什么 – 幸运的是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);
您可以复制/粘贴此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世界的同样问题.
其他方法
如another user pointed out,您也可以使用System.Globalization.Calendar
课程.我与DateTime结构相处得很好,并且它比Calendar类轻一点,但它们都可以使用.如果您要跳转日期和日历实现,那么请使用Calendar类;如果您要坚持使用日期的一个实现,那么DateTime结构就可以了.