日期格式转化
问题:日期格式转换:从键盘读入2003-11-29 ,并转换为 November 29,2003格式输出。
思路:
1.控制台输入字符串:"2003-11-29",将字符串转化为data型。
2.将data型数据转换成美式时间输出格式。
关键方法:parse()返回一个Date类型数据,format()返回一个StringBuffer类型的数据
程序:
package time_format_Daquan; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.Scanner; /** * Created by wln on 2017/9/11. * Description:parse()返回一个Date类型数据,format()返回一个StringBuffer类型的数据 参照Url:http://blog.csdn.net/woshisap/article/details/6617118 */ public class TestParseTime { public TestParseTime() throws ParseException { Scanner objScan = new Scanner(System.in);//扫描控制台输入 System.out.print("请输入日期:"); String strInput = ""; while(true) {//可多次输入 strInput = objScan.nextLine();//获取输入的内容 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期和时间格式的模式 如:yyyyMMDD Date date = sdf.parse(strInput); System.out.println("字符串转化为data类型:" + date); // 创建“简体中文”的Locale // Locale localeCN = Locale.SIMPLIFIED_CHINESE; // Locale localeCN = new Locale("zh", "CN"); // 创建“英文/美国”的Locale Locale locale = new Locale("en", "US"); // //因为日期格式化类 DateFormat类为抽象类 所以不能new ,所以直接用 类.静态方法 // DateFormat shortDateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale); // DateFormat mediumDateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale); DateFormat longDateFormat = DateFormat.getDateInstance(DateFormat.LONG, locale); // DateFormat longDateFormatCN = DateFormat.getDateInstance(DateFormat.LONG, localeCN); // DateFormat fullDateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale); // System.out.println(shortDateFormat.format(date)); // System.out.println(mediumDateFormat.format(date)); System.out.println(">>>" + longDateFormat.format(date)); // System.out.println(longDateFormatCN.format(date)); // System.out.println(fullDateFormat.format(date)); // break; } //查看Locale支持的全部区域,将整个while()注释掉运行下面 // Locale[] ls = Locale.getAvailableLocales(); // for (Locale locale:ls) { // System.out.println("locale :"+locale); // } //取得系统的时间:从1970年1月1日开始到取得系统时间为止所经过的毫秒数,没什么用 // System.out.print(System.currentTimeMillis()); } public static void main(String[] args) { try { new TestParseTime(); } catch (ParseException e) { e.printStackTrace(); } } } /* * 一、java.util.Scanner:简化文本扫描。这个类最实用的地方表现在获取控制台输入。 二、如果说Scanner使用简便,不如说Scanner的构造器支持多种方式,构建Scanner的对象很方便。 可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了, 就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。 三、Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符 使用默认的空格分隔符: public static void main(String[] args) throws FileNotFoundException { Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf ....asdfkl las"); // s.useDelimiter(" |,|\\.");//将注释行去掉,使用空格或逗号或点号作为分隔符 while (s.hasNext()) { System.out.println(s.next()); } } 四、API函数: delimiter() 返回此 Scanner 当前正在用于匹配分隔符的 Pattern。 hasNext() 判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡) hasNextLine() 如果在此扫描器的输入中存在另一行,则返回 true。 next() 查找并返回来自此扫描器的下一个完整标记。 nextLine() 此扫描器执行当前行,并返回跳过的输入信息。 * */ /* * system.in是系统标准输入流,相当于从外界(如键盘)输入信息,是IO流 * */ /* * SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 * 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。 * */ /* * DateFormat:日期格式化类(必须掌握) * API: * G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天数 Number 189 d 月份中的天数 Number 10 F 月份中的星期 Number 2 E 星期中的天数 Text Tuesday; Tue a Am/pm 标记 Text PM H 一天中的小时数(0-23) Number 0 k 一天中的小时数(1-24) Number 24 K am/pm 中的小时数(0-11) Number 0 h am/pm 中的小时数(1-12) Number 12 m 小时中的分钟数 Number 30 s 分钟中的秒数 Number 55 S 毫秒数 Number 978 z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 Z 时区 RFC 822 time zone -0800 */

浙公网安备 33010602011771号