Как получить символ разделителя времени в Java? - PullRequest
5 голосов
/ 08 апреля 2010

Есть ли способ получить символ разделителя времени ':' в Java?Это константа где-то или получатель?Может быть, есть что-то эквивалентное File.separator?

Моя строка времени возвращается DateFormat.getTimeInstance(DateFormat.SHORT, locale).format(date);

Безопасно ли просто использовать ':' в этом случае, когда позже кто-то захочет разобрать эту строку?

Ответы [ 2 ]

6 голосов
/ 08 апреля 2010

Я думаю, что безопасно использовать ':'.Это жестко закодировано в SimpleDateFormat.Например:

if (text.charAt(++pos.index) != ':')
2 голосов
/ 30 сентября 2011

Попробуйте следующее

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...