2010-04-08 34 views
5

Có cách nào để nhận biểu tượng dấu phân tách thời gian ':' trong Java không? Nó là một hằng số ở đâu đó hoặc một getter? Có lẽ có cái gì đó tương đương với File.separator?Làm cách nào để nhận biểu tượng dấu phân cách thời gian trong Java?

chuỗi thời gian của tôi được trả về bởi DateFormat.getTimeInstance(DateFormat.SHORT, locale).format(date);

Có an toàn để chỉ cần sử dụng ':' trong trường hợp này khi sau đó ai đó muốn phân tích chuỗi này?

Trả lời

6

Tôi nghĩ rằng việc sử dụng an toàn ':' là an toàn. Nó được mã hóa cứng trong SimpleDateFormat. Ví dụ:

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

Hãy thử như sau

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; 
} 
Các vấn đề liên quan