date3 字符转换date??
public static void main(String[] args) throws Exception {/*Properties properties = new Properties();properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("b.txt"));for(Map.Entry entry:properties.entrySet()){System.out.println((String)entry.getKey());System.out.println((String)entry.getValue());}*//* * Default Date: 2001-1-31 * Increace 1 month by Set,Add ,Roll Method */Calendar cal = Calendar.getInstance();initDate(cal);/* * Set Method 2001-2-31 ->2001-03-03 */cal.set(Calendar.MONTH,Calendar.FEBRUARY);populateDate(cal);/* * add Method 2001-2-31 ->2002-02-28 !!2002 */cal = Calendar.getInstance();initDate(cal);cal.add(Calendar.MONTH,13);populateDate(cal);/* * roll Method 2001-2-31 ->2001-02-28 !!2001 As Modified Filed Month is less than YEAR */cal = Calendar.getInstance();initDate(cal);cal.roll(Calendar.MONTH,13);populateDate(cal);Date d = new Date();populateDate(d);d= new SimpleDateFormat("yyyy-MM-dd").parse("2001-01-09");populateDate(d);/* * 关于格式:SimpleDateFormat * */}public static void initDate(Calendar cal){cal.clear();cal.set(Calendar.YEAR,2001);cal.set(Calendar.MONTH,Calendar.JANUARY);cal.set(Calendar.DAY_OF_MONTH,31);populateDate(cal);}public static void populateDate(Calendar cal){SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");System.out.println(sf.format(cal.getTime()));}public static void populateDate(Date d){SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");System.out.println(sf.format(d));}
?
java.text 类 SimpleDateFormatjava.lang.Object java.text.Format java.text.DateFormat java.text.SimpleDateFormat所有已实现的接口: Serializable, Cloneable --------------------------------------------public class SimpleDateFormatextends DateFormatSimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。 SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用 applyPattern 方法来修改格式模式。有关使用这些方法的更多信息,请参阅 DateFormat。 日期和时间模式日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在分析时与输入字符串进行匹配。 定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留): 字母 日期或时间元素 表示 示例 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 模式字母通常是重复的,其数量确定其精确表示: Text: 对于格式化来说,如果模式字母的数量大于或等于 4,则使用完全形式;否则,在可用的情况下使用短形式或缩写形式。对于分析来说,两种形式都是可接受的,与模式字母的数量无关。 Number: 对于格式化来说,模式字母的数量是最小的数位,如果数位不够,则用 0 填充以达到此数量。对于分析来说,模式字母的数量被忽略,除非必须分开两个相邻字段。 Year: 对于格式化来说,如果模式字母的数量为 2,则年份截取为 2 位数,否则将年份解释为 number。 对于分析来说,如果模式字母的数量大于 2,则年份照字面意义进行解释,而不管数位是多少。因此使用模式 "MM/dd/yyyy",将 "01/11/12" 分析为公元 12 年 1 月 11 日。 在分析缩写年份模式("y" 或 "yy")时,SimpleDateFormat 必须相对于某个世纪来解释缩写的年份。这通过将日期调整为 SimpleDateFormat 实例创建之前的 80 年和之后 20 年范围内来完成。例如,在 "MM/dd/yy" 模式下,如果 SimpleDateFormat 实例是在 1997 年 1 月 1 日创建的,则字符串 "01/11/12" 将被解释为 2012 年 1 月 11 日,而字符串 "05/04/64" 将被解释为 1964 年 5 月 4 日。在分析时,只有恰好由两位数字组成的字符串(如 Character.isDigit(char) 所定义的)被分析为默认的世纪。其他任何数字字符串将照字面意义进行解释,例如单数字字符串,3 个或更多数字组成的字符串,或者不都是数字的两位数字字符串(例如"-1")。因此,在相同的模式下, "01/02/3" 或 "01/02/003" 解释为公元 3 年 1 月 2 日。同样,"01/02/-3" 分析为公元前 4 年 1 月 2 日。 Month: 如果模式字母的数量为 3 或大于 3,则将月份解释为 text;否则解释为 number。 General time zone: 如果时区有名称,则将它们解释为 text。对于表示 GMT 偏移值的时区,使用以下语法: GMTOffsetTimeZone: GMT Sign Hours : Minutes Sign: one of + - Hours: Digit Digit Digit Minutes: Digit Digit Digit: one of 0 1 2 3 4 5 6 7 8 9Hours 必须在 0 到 23 之间,Minutes 必须在 00 到 59 之间。格式是与语言环境无关的,并且数字必须取自 Unicode 标准的 Basic Latin 块。 对于分析来说,RFC 822 time zones 也是可接受的。 RFC 822 time zone: 对于格式化来说,使用 RFC 822 4-digit 时区格式: RFC822TimeZone: Sign TwoDigitHours Minutes TwoDigitHours: Digit DigitTwoDigitHours 必须在 00 和 23 之间。其他定义请参阅 general time zones。 对于分析来说,general time zones 也是可接受的。 SimpleDateFormat 还支持本地化日期和时间模式 字符串。在这些字符串中,以上所述的模式字母可以用其他与语言环境有关的模式字母来替换。SimpleDateFormat 不处理除模式字母之外的文本本地化;而由类的客户端来处理。 示例以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。 日期和时间模式 结果 "yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT "EEE, MMM d, ''yy" Wed, Jul 4, '01 "h:mm a" 12:08 PM "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time "K:mm a, z" 0:08 PM, PDT "yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM "EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700 "yyMMddHHmmssZ" 010704120856-0700 "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700 同步日期格式是不同步的。建议为每个线程创建独立的格式实例。如果多个线程同时访问一个格式,则它必须是外部同步的。 另请参见:Java Tutorial, Calendar, TimeZone, DateFormat, DateFormatSymbols, 序列化表格--------------------------------------------
?