www.91084.com

GVKun编程网logo

用Java解析日期字符串(用java解析日期字符串的方法)

5

以上就是给各位分享用Java解析日期字符串,其中也会对用java解析日期字符串的方法进行解释,同时本文还将给你拓展Java-把日期字符串转换成另一种格式的日期字符串、Java8LocalDate无法解

以上就是给各位分享用Java解析日期字符串,其中也会对用java解析日期字符串的方法进行解释,同时本文还将给你拓展Java - 把日期字符串转换成另一种格式的日期字符串、Java 8 LocalDate无法解析有效的日期字符串、java – 从FTPClient.getModificationTime()解析日期字符串、java – 在日期 – 时间字符串中解析日期的顺序指示符(st,nd,rd,th)等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用Java解析日期字符串(用java解析日期字符串的方法)

用Java解析日期字符串(用java解析日期字符串的方法)

我的日期格式为“ yyyy-MM-dd’T’HH:mm:ss.sssZ”。例如,日期为“
2018-07-17T09:59:51.312Z”。我正在使用下面的代码来解析Java中的String。

  String date="2018-07-17T09:59:51.312Z";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ");
   Date transactionDateTime = simpleDateFormat.parse(date);

这给了我“无法解析的日期:”例外。谁能告诉我该怎么做?

Java - 把日期字符串转换成另一种格式的日期字符串

Java - 把日期字符串转换成另一种格式的日期字符串

package com.example.demo.utils;

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

public class DateTimeTrans {

    public static void main(String[] args) {
        
        Date date = new Date();
        try {
            date = new SimpleDateFormat("HH:mm").parse("13:12:11");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String now = new SimpleDateFormat("HH:mm").format(date);
        System.out.println(now);//13:12
    }
}

 

Java 8 LocalDate无法解析有效的日期字符串

Java 8 LocalDate无法解析有效的日期字符串

Java 8在这里。我有以下代码:

final String createdDateStr = "20110920";
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYYMMdd");
final LocalDate localDate = LocalDate.parse(createdDateStr,formatter);

在运行时,出现以下异常:

java.time.format.DateTimeParseException: Text '20110920' could not be parsed at index 0

    at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
    at java.

…被LocalDate.parse(...)调用抛出 解析器出了什么问题?

java – 从FTPClient.getModificationTime()解析日期字符串

java – 从FTPClient.getModificationTime()解析日期字符串

我试图解析一个日期字符串,这是FTP服务器上文件的修改日期.以下是代码.

String dateString = mFTPClient.getModificationTime(PDF_FILE_NAME_PS);

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");

Date modificationDate = dateFormat.parse(dateString.substring(dateString.indexOf(" ")));

Log.v(TAG, "inside downloadservice dateString="+dateString);

Log.v(TAG, "inside downloadservice modificationdate="+modificationDate.toString());

我在日志中得到了这个

05-27 10:04:20.870: V/DownloadService(751): inside downloadservice dateString=213 20130523130035

05-27 10:04:20.890: V/DownloadService(751): inside downloadservice modificationdate=Sat Jul 23 07:30:35 AEDT 203

有人可以帮我这个吗?

解决方法:

String#substring(int index)方法的javadoc说:
子字符串以指定索引处的字符开头,并延伸到此字符串的末尾.

这就是你遇到的问题:你没有正确使用String.substring()方法,因为在调用它时,你会收到另一个String,它包含一个空格作为第一个字符,这就是解析器出错的原因.

这是您需要的修复:

String dateString = mFTPClient.getModificationTime(PDF_FILE_NAME_PS);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date modificationDate = 
     dateFormat.parse(dateString.substring(dateString.indexOf(" ") + 1));

java – 在日期 – 时间字符串中解析日期的顺序指示符(st,nd,rd,th)

java – 在日期 – 时间字符串中解析日期的顺序指示符(st,nd,rd,th)

我检查了 SimpleDateFormat javadoc,但是我无法找到一种以这样的日期格式解析 ordinal indicator的方法:
Feb 13th 2015 9:00AM

我试过“MMM dd yyyy hh:mma”,但是这些日子必须在数量上是正确的吗?

可以使用SimpleDateFormat解析“第13”日期,而不必截断字符串?

解决方法

Java的SimpleDateFormat不支持序数后缀,但序号后缀只是眼睛糖果 – 它是多余的,可以很容易的删除,以便直接解析:
Date date = new SimpleDateFormat("MMM dd yyyy hh:mma")
    .parse(str.replaceAll("(?<=\\d)(st|nd|rd|th)",""));

替换正则表达式非常简单,因为这些序列将不会出现在有效日期的其他位置.

处理任何以任何语言附加任意长度的序号指示符作为后缀的语言:

Date date = new SimpleDateFormat("MMM dd yyyy hh:mma")
    .parse(str.replaceAll("(?<=\\d)(?=\\D* \\d+ )\\p{L}+",""));

一些语言,例如普通话,预先填写他们的顺序指标,但也可以使用交替方式处理 – 作为读者的练习留下来:)

关于用Java解析日期字符串用java解析日期字符串的方法的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Java - 把日期字符串转换成另一种格式的日期字符串、Java 8 LocalDate无法解析有效的日期字符串、java – 从FTPClient.getModificationTime()解析日期字符串、java – 在日期 – 时间字符串中解析日期的顺序指示符(st,nd,rd,th)的相关信息,请在本站寻找。

本文标签: