Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 解析ISO 8601格式的日期时间字符串,不带UTC偏移量_Android_Date - Fatal编程技术网

Android 解析ISO 8601格式的日期时间字符串,不带UTC偏移量

Android 解析ISO 8601格式的日期时间字符串,不带UTC偏移量,android,date,Android,Date,我正在将字符串类型的日期解析为日期格式,但每次都出现此异常 java.text.ParseException: Unparseable date: "2016-05-21T00:00:00" (at offset 4) 我的代码是: String d = "2016-05-21T00:00:00"; DateFormat df = new SimpleDateFormat("yyyy MM dd HH:mm:ss", Locale.ENGLISH); Date myDat

我正在将字符串类型的日期解析为日期格式,但每次都出现此异常

java.text.ParseException: Unparseable date: "2016-05-21T00:00:00" (at offset 4)
我的代码是:

   String d = "2016-05-21T00:00:00";
    DateFormat df = new SimpleDateFormat("yyyy MM dd HH:mm:ss", Locale.ENGLISH);
    Date myDate = null;
    try {
        myDate = df.parse(d);
    } catch (ParseException e) {
        e.printStackTrace();
    }
这样试试

String d = "2016-05-21 00:00:00";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
    Date myDate = null;
    try {
        myDate = df.parse(d);
    } catch (ParseException e) {
        e.printStackTrace();
    }
编辑

String d = "2016-05-21 00:00:00";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
    Date myDate = null;
    try {
        myDate = df.parse(d);
    } catch (ParseException e) {
        e.printStackTrace();
    }
这样试试

String d = "2016-05-21 00:00:00";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
    Date myDate = null;
    try {
        myDate = df.parse(d);
    } catch (ParseException e) {
        e.printStackTrace();
    }
编辑

String d = "2016-05-21 00:00:00";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
    Date myDate = null;
    try {
        myDate = df.parse(d);
    } catch (ParseException e) {
        e.printStackTrace();
    }

您的日期字符串和日期格式需要匹配。对于您的输入
“2016-05-21T00:00:00”
,正确的日期格式为:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

您的日期字符串和日期格式需要匹配。对于您的输入
“2016-05-21T00:00:00”
,正确的日期格式为:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
此方法将执行实际格式到预期格式的转换

public static String getDateFromString(String dateInString, String actualformat, String exceptedFormat) {
        SimpleDateFormat form = new SimpleDateFormat(actualformat);

        String formatedDate = null;
        Date date;
        try {
            date = form.parse(dateInString);
            SimpleDateFormat postFormater = new SimpleDateFormat(exceptedFormat);
            formatedDate = postFormater.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return formatedDate;
    }
此方法将执行实际格式到预期格式的转换

public static String getDateFromString(String dateInString, String actualformat, String exceptedFormat) {
        SimpleDateFormat form = new SimpleDateFormat(actualformat);

        String formatedDate = null;
        Date date;
        try {
            date = form.parse(dateInString);
            SimpleDateFormat postFormater = new SimpleDateFormat(exceptedFormat);
            formatedDate = postFormater.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return formatedDate;
    }
有关

有关

tl的更多信息;博士 ISO 8601 输入字符串
2016-05-21T00:00:00
为标准格式

java.time Java 8和更高版本中内置的类在解析或生成日期时间值的文本表示时默认使用这些格式

输入字符串缺少任何或信息。所以字符串本身是不精确的,没有特定的含义,因为它不是时间线上的一个时刻。此类值由类在java.time中表示

如果您从更大的上下文中知道字符串的含义是相对于UTC的某个偏移量,请指定一个来获取对象

更好的是,如果您确定某个预定时区,请指定一个来获取


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

使用兼容的或更高版本,您可以直接与数据库交换java.time对象。不需要字符串,也不需要java.sql.*类

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android,该项目采用了ThreeTen Backport(如上所述)。看
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

tl;博士 ISO 8601 输入字符串
2016-05-21T00:00:00
为标准格式

java.time Java 8和更高版本中内置的类在解析或生成日期时间值的文本表示时默认使用这些格式

输入字符串缺少任何或信息。所以字符串本身是不精确的,没有特定的含义,因为它不是时间线上的一个时刻。此类值由类在java.time中表示

如果您从更大的上下文中知道字符串的含义是相对于UTC的某个偏移量,请指定一个来获取对象

更好的是,如果您确定某个预定时区,请指定一个来获取


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

使用兼容的或更高版本,您可以直接与数据库交换java.time对象。不需要字符串,也不需要java.sql.*类

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类
    • 对于早期的Android,该项目采用了ThreeTen Backport(如上所述)。看

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如、、和。

java.text.ParseException:不可解析日期:“2016-05-21 00:00:00”(偏移量4)@试金石开发者你的targetSdk是什么?targetSdk版本23@Touchstone开发者对于23 check out@Touchstonedeveloper进行了一些更改:请参阅我的编辑帖子,它将防御工作java.text.ParseException:不可解析日期:“2016-05-21 00:00:00”(偏移量4)@试金石开发者你的targetSdk是什么?targetSdk版本23@Touchstone开发者对23 check out@Touchstonedeveloper进行了一些更改:请参阅我的编辑帖子,它将起到防御作用检查用于解析的
SimpleDataFormat
不理解输入字符串-格式不匹配。只需修复它,使解析器与输入格式匹配即可。请注意,您的输入字符串格式几乎是格式化的,我想知道。。。为什么几乎是一样的?是否可以更改输入,使其相同?几乎使用标准没有任何价值…检查用于解析的
SimpleDateFormat
不理解输入字符串-格式不匹配。只需修复它,使解析器与输入格式匹配即可。请注意,您的输入字符串格式几乎是格式化的,我想知道。。。为什么几乎是一样的?是否可以更改输入,使其相同?几乎使用标准没有任何价值。。。
ZoneOffset zoneOffset = ZoneOffset.of( 5 , 30 );
OffsetDateTime odt = ldt.atOffset( zoneOffet );
ZoneId zoneId = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zdt = ldt.atZone( ZoneId );