Java 如何将日文日期转换为英文日期格式?
我使用区域设置设置日语日期(例如21 11月 2016)在我的android应用程序中。但是,我想将该日期以“dd-MM-yyyy”(例如,2016年11月21日)格式发送到我的API中 当我尝试这样做时,我得到以下异常: java.lang.IllegalArgumentException:坏类:类java.lang.String 下面是我的代码:Java 如何将日文日期转换为英文日期格式?,java,android,date,date-format,simpledateformat,Java,Android,Date,Date Format,Simpledateformat,我使用区域设置设置日语日期(例如21 11月 2016)在我的android应用程序中。但是,我想将该日期以“dd-MM-yyyy”(例如,2016年11月21日)格式发送到我的API中 当我尝试这样做时,我得到以下异常: java.lang.IllegalArgumentException:坏类:类java.lang.String 下面是我的代码: public String convertDate(String date) { System.out.println("......OR
public String convertDate(String date) {
System.out.println("......ORIGINAL DATE....... " + date); // ......ORIGINAL DATE....... 21 11月 2016
String myFormat = "dd-MM-yyyy"; //In which you need put here
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, new Locale(getMyLocale())); //Japanese locale is set but tried english too
System.out.println("......CONVERTED DATE....... " + sdf.format(date)); //should be 21-11-2016 but getting above error
return sdf.format(new Date(date));
}
此外,对于美国/英语语言环境,它可以正常工作,但对于日语,我遇到了这个错误。java.time
您正在使用由java.time类取代的麻烦的旧遗留日期时间类
定义一个DateTimeFormatter
对象以匹配输入字符串的模式,并为日本指定一个Locale
。将输入字符串解析为LocalDate
对象。调用LocalDate.parse
定义一个DateTimeFormatter
对象以匹配所需的输出。调用LocalDate::format
生成所需的字符串
这已经在StackOverflow中记录了很多次。请搜索以查找示例代码和进一步讨论
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到java.time 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 从哪里获得java.time类
- 后来
- 内置的李>
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 该项目专门针对Android采用了Three Ten Backport(如上所述)
- 看
DateTimeFormatter
对象以匹配输入字符串的模式,并为日本指定一个Locale
。将输入字符串解析为LocalDate
对象。调用LocalDate.parse
定义一个DateTimeFormatter
对象以匹配所需的输出。调用LocalDate::format
生成所需的字符串
这已经在StackOverflow中记录了很多次。请搜索以查找示例代码和进一步讨论
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到java.time 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 从哪里获得java.time类
- 后来
- 内置的李>
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 该项目专门针对Android采用了Three Ten Backport(如上所述)
- 看
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。您需要两个格式化程序,如下所示
String in = "2016年11月 21日"; // really a space here?
SimpleDateFormat sdf1 = new SimpleDateFormat ("yyyy年MM月 dd日");
Date d1 = sdf1.parse(in);
SimpleDateFormat sdf2 = new SimpleDateFormat ("dd-MM-yyyy");
System.out.println(sdf2.format(d1));
您需要两个格式化程序,如下所示
String in = "2016年11月 21日"; // really a space here?
SimpleDateFormat sdf1 = new SimpleDateFormat ("yyyy年MM月 dd日");
Date d1 = sdf1.parse(in);
SimpleDateFormat sdf2 = new SimpleDateFormat ("dd-MM-yyyy");
System.out.println(sdf2.format(d1));
解析字符串时,应使用
parse
notformat
以及21 11的格式月 2016年
不是dd-MMM-yyyy
-请尝试使用dd-MM格式进行解析月 yyyy
如果这真的是您的字符串,请参阅dd MM yyyy是我需要的格式,但在文本标签上,我将日期设置为2016年11月21日,对于解析,我收到以下错误java.text.ParseException:无法解析的日期:“2016”年11月 21日" (在偏移量11处)@VVB所以你不知道输入的日期格式?(除了日语)@VVB编辑您的问题,以显示特定输入字符串、特定格式模式和特定输出结果或特定错误的确切示例。否则,您是在浪费我们的时间。在解析字符串时,您应该使用parse
notformat
以及21 11的格式月 2016年
不是dd-MMM-yyyy
-请尝试使用dd-MM格式进行解析月 yyyy
如果这真的是您的字符串,请参阅dd MM yyyy是我需要的格式,但在文本标签上,我将日期设置为2016年11月21日,对于解析,我收到以下错误java.text.ParseException:无法解析的日期:“2016”年11月 21日“(在偏移量11处)@VVB,所以您不知道输入日期格式?(除了日语)@VVB编辑您的问题,以显示特定输入字符串、特定格式模式和特定输出结果或特定错误的确切示例。否则,您将浪费我们的时间。