当前位置: 首页 > 知识库问答 >
问题:

将字符串yyyy-MM-dd转换为日期格式,电话语言从右到左(阿拉伯语)

上官鸿祯
2023-03-14

这是我的代码:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String exp_date="2015-08-28";
try {
    Log.v("dateformat111","is "+exp_date);
    Date exp_dateFormated = format.parse(exp_date);
    Log.v("dateformat111","is "+exp_dateFormated);       
} catch (ParseException e) {
    Log.v("dateformat111","did not found date");
    e.printStackTrace();
}

而且这个陷阱被称为“陷阱”,所以出了问题

日志:

09-24 12:21:34.931  19014-19014/? V/dateformat111﹕ did not found date

例外情况:

java.text.ParseException: Unparseable date: "2015-08-28"

不是如何解析日期的副本?我正在解析的字符串与SimpleDataFormat“yyyy-MM-dd”、“2015-08-28”的格式相同

我发现是什么原因导致了以英语(ltr)为电话语言的异常我的代码正常工作,但当将其更改为阿拉伯语(rtl)时,会抛出异常,这是为什么?

共有3个答案

夹谷衡
2023-03-14

试试这个,

public static String formatTime(Date time, Locale locale){
    String timeFormat = UserSettingManager
                           .getUserSetting(UserSettingManager.PREF_TIME_FORMAT);

    if(StringUtils.isEmptyOrWhitespace(timeFormat)){
        timeFormat = DEFAULT_TIME_FORMAT;
    }

    SimpleDateFormat formatter;

    try {
        formatter = new SimpleDateFormat(timeFormat, locale);            
    } catch(Exception e) {
        formatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT, locale);
    }
    return formatter.format(time);
}

像这样打电话,

Log.e("CHINESE DATE", formatTime(new Date(), Locale.CHINESE));
奚修伟
2023-03-14

试试这个,

主要的JAVA

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.text.format.DateFormat;
import android.util.Log;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

@SuppressWarnings("unused")
@SuppressLint("SimpleDateFormat")
public class DateFormate extends Activity {

    Button btnDate;
    TextView txtDate;

    String date="2015-9-25";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_date_formate);

        btnDate=(Button)findViewById(R.id.btnDate);
        txtDate=(TextView)findViewById(R.id.textView1);

        btnDate.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
                Date d;
                try {
                    d = df.parse(date);
                    df=new SimpleDateFormat("yyyy-MM-dd");
                    String myDate = df.format(d);
                   Log.i("Date",myDate);
                   txtDate.setText(""+myDate);
                } catch (ParseException e) {}
            }
        });
    }
}

主要的xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.dateformate.DateFormate" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/btnDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="23dp"
        android:text="DateFormate" />

</RelativeLayout>

这对我有用。

曾英睿
2023-03-14

您的问题是由于无效的日期在本地.尝试改变您的区域设置如下。

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd",Locale.US); 

它会起作用的。

 类似资料:
  • 我有一个格式为。我希望它的格式为 下面是我尝试进行此转换的示例util: 但是,我得到的输出不是格式。 请告诉我如何将从格式化为

  • 问题内容: 我正在尝试使用以下方式将dd-mm-yyyy格式的字符串转换为JavaScript中的日期对象: 包含格式为dd-mm-yyyy的日期。当我执行以下操作时,我得到“无效日期”: 这是因为符号“-”吗?我该如何克服? 问题答案: 分割为“-” 将字符串解析为所需的部分: 使用正则表达式 为什么不使用正则表达式? 因为您知道将要使用由连字符分隔的三部分组成的字符串。 但是,如果您要在另一个

  • 问题内容: 我在网络上阅读了更多问题,但还没有找到解决方案。 我有一个完全像这种格式的 字符串, 例如“ 14/05/1994”。 我需要以 相同的格式* 将其隐藏到 java.util.Date 中。 * 我试过了: 但结果是:1994年5月14日星期六星期六00:00:00 结果是:1994年5月14日不是字符串,而是java.util.Date? 问题答案: 一个不 具有 的格式。这只是个约

  • 问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的

  • 我从格式为yyyy-mm-dd(加上不需要的hh-mm-ss)的API中获取日期结果。我想在jQuery中将其转换为dd-mm-yyyy格式,最简单/最快的方法是什么? 目前我正在使用:(对于返回的字符串yyyy-mm-dd): 但是好像有点啰嗦。

  • 我想将日期从07/02/2019转换为2019年7月07日。我的输入值是07/02/2019我想与目标值2019年7月07日进行比较.....请帮助我... public static void main(string[]args)引发ParseException{ 输出:Mon Jul 01 00:00:00 IST 2019这不是我的期望值