beanshell : TimeTest.bsh
import java.io.*; import java.net.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; DateFormat fmt = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); /** UTC -> local Time */ public static String getLocalTimeFromUTC(String UTCTime){ java.util.Date UTCDate = null ; String localTimeStr = null ; try { UTCDate = fmt.parse(UTCTime); fmt.setTimeZone(TimeZone.getTimeZone("GMT+8")) ; localTimeStr = fmt.format(UTCDate) ; } catch (ParseException e) { e.printStackTrace(); } return localTimeStr ; } Calendar cal = new GregorianCalendar(); zone = cal.getTimeZone().getID(); print(zone); try { Socket s = new Socket("time.nist.gov", 13); try { InputStream inStream = s.getInputStream(); Scanner in = new Scanner(inStream); while (in.hasNextLine()) { String line = in.nextLine(); // print(line); if (line.length() >24){ String UTC = line.substring(6,24); print("UTC "+UTC); print("CN 20"+getLocalTimeFromUTC(UTC)); } } } finally { s.close(); } } catch (IOException e) { e.printStackTrace(); }
在 android 4.2 上测试成功