Skip to content

Instantly share code, notes, and snippets.

@wangweij
Created December 12, 2012 02:37
Show Gist options
  • Save wangweij/4264385 to your computer and use it in GitHub Desktop.
Save wangweij/4264385 to your computer and use it in GitHub Desktop.
List various things
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.security.Provider;
import java.security.Security;
import java.text.DateFormat;
import java.util.*;
class Listing {
public static void main(String[] args) throws Exception {
if (args.length == 0) {
System.out.print("Usage: java Listing ");
boolean first = true;
for (Method m: Listing.class.getDeclaredMethods()) {
String n = m.getName();
if (!n.equals("main")) {
if (!first) System.out.print("|");
System.out.print(n);
first = false;
}
}
System.out.println();
return;
}
Listing.class.getMethod(args[0]).invoke(null);
}
public static void alg() throws Exception {
Provider[] providers = Security.getProviders();
for (int i=0; i<providers.length; i++) {
Iterator p = providers[i].keySet().iterator();
while (p.hasNext()) {
Object o = p.next();
System.out.println(o + ": " + providers[i].get(o) + " - " + providers[i]);
}
}
}
public static void prop() {
for (Object o: System.getProperties().keySet()) {
System.out.println(o + ": " + System.getProperty((String)o));
}
}
public static void locale() {
for (Locale loc: Locale.getAvailableLocales()) {
System.out.println(loc + ": " + loc.getDisplayName());
}
}
public static void charset() {
for (String c: Charset.availableCharsets().keySet()) {
System.out.println(c + ": " + Charset.forName(c).displayName());
}
}
public static void env() {
for (String s: System.getenv().keySet()) {
System.out.println(s + ": " + System.getenv(s));
}
}
public static void tz() {
Date now = new Date();
Map<String,StringBuilder> names =
new LinkedHashMap<String,StringBuilder>();
String[] ids = TimeZone.getAvailableIDs();
Arrays.sort(ids, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
TimeZone z1 = TimeZone.getTimeZone(o1);
TimeZone z2 = TimeZone.getTimeZone(o2);
return z1.getRawOffset() - z2.getRawOffset();
}
});
for (String id: ids) {
TimeZone z = TimeZone.getTimeZone(id);
String name = z.getDisplayName();
DateFormat df = DateFormat.getTimeInstance();
df.setTimeZone(z);
long off = z.getRawOffset();
String sign = name + off + z.useDaylightTime();
if (!names.containsKey(sign)) {
StringBuilder sb = new StringBuilder();
sb.append("GMT");
sb.append(off>0?'+':'-');
if (off < 0) off = -off;
sb.append(String.format("%02d:%02d - ", off/60000/60, off/60000%60));
sb.append(String.format("%11s %s- %s - ", df.format(now), (z.inDaylightTime(now)?"DST ":" "), name));
sb.append(z.getID());
names.put(sign, sb);
} else {
names.get(sign).append(", ").append(z.getID());
}
}
for (String s: names.keySet()) {
System.out.println(names.get(s));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment