Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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
Java 时间戳字符串拆分以获取日期和时间有效的方式_Java_Regex_String_Split - Fatal编程技术网

Java 时间戳字符串拆分以获取日期和时间有效的方式

Java 时间戳字符串拆分以获取日期和时间有效的方式,java,regex,string,split,Java,Regex,String,Split,1) 使用正则表达式、模式 2) 在String类中使用split函数 我尝试过使用分割函数,我认为这不是一个好的编码实践。 使用像这样的“u”迭代数组拆分输入字符串 弦 START_READING_20140723_093539.jpg 说明\u 20140723\u 093539.jpg Qunantity_20140723_183539.jpg 结束_READING_20140723_093539.jpg 输入格式为:yyyyMMdd\u HHmmss 输出格式为:23-07-2014

1) 使用正则表达式、模式

2) 在String类中使用split函数

我尝试过使用分割函数,我认为这不是一个好的编码实践。 使用像这样的“u”迭代数组拆分输入字符串

START_READING_20140723_093539.jpg
说明\u 20140723\u 093539.jpg
Qunantity_20140723_183539.jpg
结束_READING_20140723_093539.jpg
输入格式为:
yyyyMMdd\u HHmmss


输出格式为:
23-07-2014 6:35:39PM

您可以使用DateFormat将输入解析为java.util.Date或Calendar,并使用第二个DateFormat将其格式化为字符串,使用所需的输出格式。

您可以使用DateFormat将输入解析为java.util.Date或Calendar,并使用第二个DateFormat将其格式化为字符串DateFormat与您想要的输出格式

     import re
     pattern=re.compile(r".*?(\d+)_(\d+).jpg")
     print pattern.match(x).groups()
这将为您提供日期和时间。然后您可以使用mktime或python中的其他实用程序以您想要的格式获取它


这将为您提供日期和时间。然后您可以使用mktime或python中的其他实用程序以您想要的格式获取它。

您可以尝试类似的方法

 String str = "START_READING_20140723_093539.jpg";
 Scanner scanner = new Scanner(str.substring(0, str.lastIndexOf('.')));
 scanner.useDelimiter("[^\\p{Alnum},\\.-]");
 String[] arr=new String[2];
 int i=0;
 while (scanner.hasNext()) {
    if (scanner.hasNextInt()) {
            arr[i]=scanner.next();
            i++;
     } else {
             scanner.next();
      }
    }
 String dateStr=arr[0]+"_"+arr[1];
 DateFormat df1=new SimpleDateFormat("yyyyMMdd_HHmmss");
 DateFormat df2=new SimpleDateFormat("dd-MM-yyyy HH:mm:ssa");
 System.out.println(df2.format(df1.parse(dateStr)));
输出:

  23-07-2014 09:35:39AM

你可以试试这样的

 String str = "START_READING_20140723_093539.jpg";
 Scanner scanner = new Scanner(str.substring(0, str.lastIndexOf('.')));
 scanner.useDelimiter("[^\\p{Alnum},\\.-]");
 String[] arr=new String[2];
 int i=0;
 while (scanner.hasNext()) {
    if (scanner.hasNextInt()) {
            arr[i]=scanner.next();
            i++;
     } else {
             scanner.next();
      }
    }
 String dateStr=arr[0]+"_"+arr[1];
 DateFormat df1=new SimpleDateFormat("yyyyMMdd_HHmmss");
 DateFormat df2=new SimpleDateFormat("dd-MM-yyyy HH:mm:ssa");
 System.out.println(df2.format(df1.parse(dateStr)));
输出:

  23-07-2014 09:35:39AM

对于语句中的任何输入字符串,请考虑例如

"START_READING_20140723_093539.jpg".split("\\.|_")
产生

Array("START", "READING", "20140723", "093539", "jpg")

获取第二个和第三个最后的项,然后按建议应用<代码> java .Text。SimuleDealFrase.< /P> < P>对于语句中的任何输入字符串,考虑例如

"START_READING_20140723_093539.jpg".split("\\.|_")
产生

Array("START", "READING", "20140723", "093539", "jpg")
获取最后的第二个和第三个项目,然后按照建议应用java.text.simpleDataFormat

为什么不用于整个项目

import joda.time.format.*;
import joda.time.*;

DateTimeFormatter inputFormat = DateTimeFormat.forPattern("yyyyMMdd'_'HHmmss");
LocalDateTime timestamp = inputFormat.parseLocalDateTime(theString);

DateTimeFormatter outputFormat = DateTimeFormat.forPattern("dd'-'MM'-'yyyy' 'hh':'mm':'ssa");
String output = outputFormat.print(timestamp);
如果您使用的是Java8,那么应该使用Java.time包

为什么不全部使用

import joda.time.format.*;
import joda.time.*;

DateTimeFormatter inputFormat = DateTimeFormat.forPattern("yyyyMMdd'_'HHmmss");
LocalDateTime timestamp = inputFormat.parseLocalDateTime(theString);

DateTimeFormatter outputFormat = DateTimeFormat.forPattern("dd'-'MM'-'yyyy' 'hh':'mm':'ssa");
String output = outputFormat.print(timestamp);

如果您使用的是Java8,那么应该使用Java.time包

好的,我知道你的事了。到目前为止,您尝试了什么?这个问题似乎脱离主题,因为OP没有显示任何努力。字符串s[]=input.split(“”);像这样,然后简化了TEFORMAT解析和格式化方法OK。我明白你的意思了。到目前为止,您尝试了什么?这个问题似乎脱离主题,因为OP没有显示任何努力。字符串s[]=input.split(“”);这样,SimpleDataFormat解析和格式化方法