Java字符串入门到日期转换
处理文本、日期、数字和消息是任何编程语言的每个程序或项目的基本部分。Java提供了一个' Java。文本'包与实现的类用于这些目的。其中一个类是' java.text。SimpleDateFormat ',这是一个具体的类(实现了' DateFormat '抽象类的所有方法),用于格式化和解析日期,以敏感的语言环境方式。它允许格式化日期对象到Java字符串,解析Java字符串到日期对象和规范化。
什么是Java字符串到日期转换?
将Java字符串转换到日期,使用类“simpleDateFormat”类的实例方法'Parse',被称为日期解析的字符串。'simpleDateFormat'允许任何用户定义的日期模式或格式进行日期时格式化,并转换特定字符串,该字符串将该模式到达日期对象。
想要了解更多关于Java字符串的知识,请上Udemy.com的课程。
如何将Java字符串转换为日期对象?
在实现Java字符串到日期对象之前,以下是一些必须牢记的要点:
- “simpleDateFormat”不是线程安全,这意味着此类的一个实例不能用于多个线程,涉及执行Java字符串到日期转换和格式化日期对象。
- “解析”方法'simpleDateFormat'抛出'ParseException'异常,当定义的日期模式无效时。
- 在Java文档中,建议使用“dateformat”中的“gettimeInstance”,“getDateInstance”或“getDateTemeInstance”中的任何一个创建日期时间格式。这些类方法中的每一个都可以返回以默认格式模式初始化的日期时间格式。
代码片段:
公共静态无效主要(字符串args [])抛出抛出ParseException {
SimpleDateFormat dateformat =新SimpleDateFormat ("dd-MMM-yyyy");字符串DateInstring =“2014年5月 - 2014年”;试一试{java.util.date dateObject = dateformatter.parse(dateinstring);system.out..println (dateObject);system.out..println(DateFormatter.Format(DateObject));}抓住(ParseException e){system.out..println (e);};}
输出:
2014年PKT 5月12日星期一00:00:00
12 - 5月- 2014
在上面的代码段中,使用“simpleDateFormat”和“java.util.date”类来实现迄今为止转换的Java字符串。要启动,使用“simpleDateFormat”对象创建有效的日期格式。然后“解析”,具有字符串对象作为参数的“simpleDateFormat”的实例方法返回Java Date对象的对象。接下来,使用“SimpleDateFormat”的另一个实例方法“格式”再次将Java Date对象再次转换为String对象,该对象具有Java Date对象作为参数。
有兴趣了解有关Java的更多信息吗?在Udemy.com拍摄课程。
一些常见的日期和时间模式' SimpleDateFormat '用于Java字符串到日期的转换:
- 信'y'代表年份。
- 字母'M'代表一年的月份。
- 字母'd'代表月份,并在一周内为日常名称。
- 字母“a”代表AM/PM标记,“h”是AM/PM中的Hour。
- 字母'h'代表一天的小时,'m'代表分钟,在一小时内,'分钟是第二。
以下代码片段演示了上述模式字母的基本使用。
代码片段:
DateFormat DateFormat =新SimpleDateFormat ("dd/MM/yyyy");String dateInString = "12/05/2014";DateFormat dateFormatter_2 =新SimpleDateFormat(“DD-MM-YYYY HH:MM:SS”);字符串DateInstring_2 =“12-05-2014 22:37:50”;dateformat datematter_3 =新SimpleDateFormat ("dd-MMM-yyyy");String dateInString_3 = "12-May-2014";DateFormat dateFormatter_4 =新SimpleDateFormat ("MM dd, yyyy");String datestring_4 = "05 12, 2014";DateFormat dateFormatter_5 =新SimpleDateFormat(“e,mmm dd yyyy”);字符串DateInstring_5 =“2014年5月12日星期一”;DateFormat DateFormatter_6 =新SimpleDateFormat(“e,mmm dd yyyy hh:mm:ss”);字符串DateInstring_6 =“2014年5月12日星期一23:37:50”;dateformat dateformatter_7 =新SimpleDateFormat(“DD-MMMM-YY”);字符串DateInstring_7 =“14-9月-14”;试一试{java.util.date dateObject = dateformatter.parse(dateinstring);system.out..println(dateObject);system.out..println (dateformat。format (dateObject));dateObject = dateFormatter_2。解析(dateInString_2);system.out..println(dateObject);system.out..println(dateformatter_2.format(dateObject));dateObject = dateformatter_3.parse(dateinstring_3);system.out..println(dateObject);system.out..println(dateformatter_3.format(dateObject));dateObject = dateformatter_4.parse(dateInstring_4);system.out..println(dateObject);system.out..println (dateFormatter_4。format (dateObject));dateObject = dateFormatter_5。parse (dateinsing_5);system.out..println(dateObject);system.out..println(dateformatter_5.format(dateObject));dateObject = dateformatter_6.parse(dateinstring_6);system.out..println(dateObject);system.out..println (dateFormatter_6。format (dateObject));dateObject = dateFormatter_7。parse (dateinsing_7);system.out..println(dateObject);system.out..println (dateFormatter_7。format (dateObject));}抓住(ParseException e){system.out..println(e);};
输出:
2014年PKT 5月12日星期一00:00:00
12/05/2014
2014年5月12日星期一22:37:50 PKT
12-05-2014 22:37:50
2014年PKT 5月12日星期一00:00:00
12 - 5月- 2014
2014年PKT 5月12日星期一00:00:00
2014年05年12日
2014年PKT 5月12日星期一00:00:00
星期一,2014年5月12日
星月12月12日23:37:50 PKT 2014
星期一,2014年5月12日23:37:50
2014年PKT日9月14日00:00:00
14-September-14
在上面的代码片段中,演示了使用不同日期格式模式的Java String to Date对象转换的多种变体。格式的子字符串' MMM '表示月份名称的前三个字符,而' MMMM '表示月份的全名。yy代表年份的后两位数字。
Java字符串到日期转换中的常见错误
以下是几乎每个程序员在将Java String转换为Date对象时都会遇到的常见错误。
- 大多数时候,程序都会抛出一个异常“ClassCastException”。这是因为` java.util `的类型转换。type Date对象为java.sql。Date ' type日期对象。在Java String到Date对象的转换中,解决此异常的方法是导入' Java .util. util. util. util. util. util. util. util. util. util. util. util. util。删除java.sql的导入。或使用类的完整名称“java.util.”。而不是“Date”
java.util.date dateObject = dateformatter.parse(dateinstring);
- 另一个常见错误是'parseexception'异常。当Java字符串转换为日期进程时,当“SimpleDateFormat”的日期格式与已传递给“Parse”方法的字符串不匹配时,将抛出此异常。
- 目前,大多数应用程序都使用多个线程来固定进程执行。由于'simpleDateFormat'不是线程安全,因此在同一时间由多个线程访问时可能会出现许多问题。对此问题的补救措施是在Java字符串中使用修改后的“simpleDateFormat”类到日期转换。以下代码演示了修改类类(TheDsafesimpleDateFormat)的实现。
代码片段:
public class ThreadSafeSimpleDateFormat {private DateFormat DateFormat;public ThreadSafeSimpleDateFormat(String format){这个。dateFormat = new SimpleDateFormat(format);} public synchronized String format(Date Date) {return dateFormat.format(Date);} public synchronized Date parse(String String) throws ParseException {return dateFormat.parse(String);} }