有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    生成的HTML太大,无法在此处发布,但下面的实用程序会生成所需的HTML选择和选项标记

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.Set;
    import org.joda.time.DateTimeZone;
    
    public class DateTimeUtils {
    
      /**
       * Prevents the construction of instances of this utility class which has only static methods.
       */
      private DateTimeUtils() {
      }
    
      /**
       * Displays the timezone identifiers provided by the system.
       */
      public static void listAvailableIDs() {
        final Set<String> availableIDs = DateTimeZone.getAvailableIDs();
        final List<String> sortedAvailableIDs = new ArrayList<>();
        sortedAvailableIDs.addAll(availableIDs);
        Collections.sort(sortedAvailableIDs);
        for (final String sortedAvailableID : sortedAvailableIDs) {
          System.out.println(sortedAvailableID);
        }
      }
    
      /**
       * Generates an HTML select element for the timezone identifiers accepted by Joda DateTime on Java 15.
       */
      public static void generateHTMLTimezoneSelect() {
        final Set<String> availableIDs = DateTimeZone.getAvailableIDs();
        final List<String> sortedAvailableIDs = new ArrayList<>();
        sortedAvailableIDs.addAll(availableIDs);
        Collections.sort(sortedAvailableIDs);
        final StringBuilder stringBuilder = new StringBuilder();
        stringBuilder
                .append("<label for=\"timezone\">Select your timezone:</label>\n")
                .append("<select name=\"timezone\">\n");
        for (final String sortedAvailableID : sortedAvailableIDs) {
          stringBuilder
                  .append("  <option value=\"")
                  .append(sortedAvailableID)
                  .append("\">")
                  .append(sortedAvailableID)
                  .append("</option>\n");
        }
        stringBuilder.append("</select>\n");
        System.out.println(stringBuilder.toString());
      }
    
      /**
       * Generates an initialized String array for the timezone identifiers accepted by Joda DateTime on Java 15.
       */
      public static void generateTimezoneIDArray() {
        final Set<String> availableIDs = DateTimeZone.getAvailableIDs();
        final List<String> sortedAvailableIDs = new ArrayList<>();
        sortedAvailableIDs.addAll(availableIDs);
        Collections.sort(sortedAvailableIDs);
        final StringBuilder stringBuilder = new StringBuilder();
        stringBuilder
                .append("  private static final String[] TIMEZONE_IDS = {\n");
        for (final String sortedAvailableID : sortedAvailableIDs) {
          stringBuilder
                  .append("    \"")
                  .append(sortedAvailableID)
                  .append("\",\n");
        }
        stringBuilder.setLength(stringBuilder.length() - 2);
        stringBuilder.append("\n  };\n");
        System.out.println(stringBuilder.toString());
      }
    }
    
  2. # 2 楼答案

    HTML standard中没有这样的标记。您必须在后端生成列表,或者使用一个可用的前端库(例如https://momentjs.com/timezone/)。在后端生成可以保证标识符是兼容的