如何在Java中获取时间分隔符号?

时间:2010-04-08 10:36:16

标签: java time

有没有办法在Java中获取时间分隔符':'?这是一个恒定的地方还是一个吸气剂?也许有一些东西等同于File.separator?

我的时间字符串由DateFormat.getTimeInstance(DateFormat.SHORT, locale).format(date);

返回

在以后有人想要解析这个字符串时,在这种情况下使用':'是否安全?

2 个答案:

答案 0 :(得分:6)

我认为使用':'是安全的。它在SimpleDateFormat中被硬编码。例如:

if (text.charAt(++pos.index) != ':')

答案 1 :(得分:2)

尝试以下

public static String getTimeSeparator(Locale locale) {
    String sepValue = ":";

    DateFormat dateFormatter = DateFormat.getTimeInstance(DateFormat.SHORT,
                locale);
    DateFormatSymbols dfs = new DateFormatSymbols(locale);
    Date now = new Date();

    String[] amPmStrings = dfs.getAmPmStrings();
    String localeTime = dateFormatter.format(now);
    //remove the am pm string if they exist
    for (int i = 0; i < amPmStrings.length; i++) {
      localeTime = localeTime.replace(dfs.getAmPmStrings()[i], "");
    }

    // search for the character that isn't a digit.
    for (int currentIndex = 0; currentIndex < localeTime.length(); currentIndex++) {
      if (!(Character.isDigit(localeTime.charAt(currentIndex))))
      {
        sepValue = localeTime.substring(currentIndex, currentIndex + 1);
        break;
      }
    }

    return sepValue;
}