我们有一个遗留系统,他们将生成当前日期,然后将其设置为excel的标题。
简化逻辑部分中的java代码
有时对于这个程序,我会以一种特殊的形式获得标题输出
作为示例场景,我的代码应该生成一个14个字符的标题,如20170529121599,但有时会产生一个15个字符的标题,如201705291215992
预期:20170529121599
输出:201705291215992
为什么我会在极少数情况下获得额外的角色? 这种情况很少发生,当发生这种情况时,这个额外的字符会导致下游系统失败。
修复:我们可以通过计划额外的章程来解决这个问题,但我真的想知道这背后的原因,以便它有助于修复类似的问题。
有人可以帮我这个吗?
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class TestDateGeneration {
public static void main(String args[]) {
DateFormatSymbols symbols;
SimpleDateFormat formatter;
symbols = new DateFormatSymbols(new Locale("en", "US"));
formatter = new SimpleDateFormat("E", symbols);
java.util.Date todayDate = new java.util.Date();
String header = "";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String formatedDate = dateFormat.format(todayDate);
header = formatedDate+"\t";
System.out.println("output header " +header);
}
}
答案 0 :(得分:1)
除了难以阅读之外,你的代码还没有产生你的输出(提示:包括" formatedDate"在你的println()调用中)。实际的失败测试可能会得到更好的答案。
因此,如果我猜测为什么它没有做你想要的,我猜你的格式实际上是" yyyyMMddHHmmSS"。大写S表示毫秒(与报告的输出显示的一致)。请注意" 99"在一分钟内的秒数无效,但" 990"和" 992"都是有效的毫秒。