标签: simpledateformat

日期对象SimpleDateFormat在Java(Android)环境中无法正确解析时间戳字符串

我正在使用SimpleDateFormat带有Date对象的对象,如下所示.问题在于Date对象显示错误的日期,这与原始字符串相距几分钟.该Date对象似乎以调试器中的总毫秒数存储时间.

关于这个问题的任何想法?

import java.text.SimpleDateFormat;

import java.util.Date;

Date played_at_local; 

dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSSSSZ");

played_at_local = dateFormat.parse("2011-04-11T22:27:18.491726-05:00"); 

//played_at_local shows "Mon Apr 11 22:35:29 America/Chicago 2011" in debugger
Run Code Online (Sandbox Code Playgroud)

java parsing android date simpledateformat

5
推荐指数
2
解决办法
3万
查看次数

为什么Android上的SimpleDataFormat解析失败?

DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");

sdf.parse("Sun Dec 13 10:00:00 UTC 2009")
Run Code Online (Sandbox Code Playgroud)

结果

java.text.ParseException:Unparseable date:Sun Dec 13 10:00:00 UTC 2009

注意:此代码似乎适用于普通的Java应用程序,但似乎在Android上失败.

java parsing android simpledateformat

5
推荐指数
1
解决办法
507
查看次数

SimpleDateFormat - 无法解析的日期

我尝试将String转换为Date.

这是我的代码:

    SimpleDateFormat format =  new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    Date date = format.parse("Sun Apr 08 16:37:00 CEST 2012");
Run Code Online (Sandbox Code Playgroud)

我得到例外:

04-08 13:51:36.536:W/System.err(8005):java.text.ParseException:Unparseable date:"Sun Apr 08 16:37:00 CEST 2012".

格式似乎没问题.我错过了什么吗?

谢谢.

java android simpledateformat

5
推荐指数
3
解决办法
7910
查看次数

带有日期参数的TimeZone和MessageFormat

MessageFormat类很酷,因为我们可以插入参数并直接使用它进行格式化.这使我能够直接在消息包属性文件中轻松覆盖日期格式.

举个例子:

MessageFormat.format("Test inserting a date param here: {0,date,dd/MM/yyyy HH'h'mm} -> OK cool", new Date() );
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要在不同的时区显示日期怎么办?

我知道我可以在将它们注入我的包中之前格式化所有日期,但是格式化每个显示的日期都很麻烦...


在工作中我们正在使用

org.springframework.context.support.ReloadableResourceBundleMessageSource

我可能会尝试覆盖它并创建我自己的MessageFormat,它会考虑使用好的时区.但它可能不适合我们的架构.

你还有其他选择吗?

java spring date-format messageformat simpledateformat

5
推荐指数
1
解决办法
5809
查看次数

在不使用SimpleDateFormat的情况下将字符串解析为日期?

我正在开发一个spring应用程序,在我的一个控制器中,我有以下行从字符串到日期进行解析,并将解析的日期格式化为所需的格式.但是我需要在没有使用任何SimpleDateFormat的情况下将格式化的字符串解析回日期,所以有可能这样做吗?

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");

Date pick=dateFormat.parse(request.getParameter("pickDate"));
String pick_date=dateFormat2.format(pick);
Run Code Online (Sandbox Code Playgroud)

java date-parsing simpledateformat date-formatting

5
推荐指数
1
解决办法
5095
查看次数

Java DateFormat:如何处理"st","nd","rd","th"?

如何使用一些DateFormat解析这样的字符串?

7月24日星期三

据我所知,没有任何内容SimpleDateFormat.

java date-format simpledateformat date-formatting

5
推荐指数
1
解决办法
2691
查看次数

在Java中解析字符串中的不同日期格式

我有一个字符串,可能包含以下任何格式的日期:

2001-01-05 (yyyy-mm-dd)
2001/01/05 (yyyy/mm/dd)
01/05/2001 (dd/mm/yyyy)
01-05-2001 (dd-mm-yyyy)
2001 january 5
2001 5 january
january 5 2001
5 january 2001
january 5
5 january
Run Code Online (Sandbox Code Playgroud)

我希望能够解析特定的字符串并从中提取Date对象.

我的方法如下:

String[] date_formats = {
                            "yyyy-MM-dd",
                            "yyyyy/MM/dd", 
                            "dd/MM/yyyyy",
                            "dd-MM-yyyy",
                            "yyyy MMM dd",
                            "yyyy dd MMM",
                            "dd MMM yyyy",
                            "dd MMM",
                            "MMM dd",
                            "dd MMM yyyy"};

String output_date = null;
for (String formatString : date_formats)
{
     try
     {    
         Date mydate = new SimpleDateFormat(formatString).parse(token);
         SimpleDateFormat outdate = new SimpleDateFormat("yyyyMMdd");
         output_date = outdate.format(mydate);
         break;
     }
     catch (ParseException …
Run Code Online (Sandbox Code Playgroud)

java datetime date simpledateformat

5
推荐指数
2
解决办法
2万
查看次数

解析日期字符串的问题

我正在尝试将以下字符串解析为Date对象:

2013-12-26T01:00:56.664Z
Run Code Online (Sandbox Code Playgroud)

使用这个SimpleDateFormat:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

 java.text.ParseException: Unparseable date: "2013-12-26T01:00:56.664Z" (at offset 19)
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我该如何处理日期中TZ字母?

java parsing android date simpledateformat

5
推荐指数
1
解决办法
182
查看次数

为什么java的SimpleDateFormat在使用SimpleTimeZone时从我的UTC日期减去1秒

有人可以解释为什么SimpleDateFormat在使用SimpleTimeZone设置时区时将我的解析日期减去1秒?

这是一个jdk bug吗?

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.SimpleTimeZone;
import java.util.TimeZone;

public class SimpleDateFormatTest {

    public static void main(String[] args) throws ParseException {

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

        format.setTimeZone(TimeZone.getTimeZone("UTC"));
        System.out.println(format.parse("2016-02-24T17:31:00Z")); 
        // prints Wed Feb 24 17:31:00 UTC 2016

        format.setTimeZone(new SimpleTimeZone(SimpleTimeZone.UTC_TIME, "UTC"));
        System.out.println(format.parse("2016-02-24T17:31:00Z")); 
        // Wed Feb 24 17:30:59 UTC 2016
    }

}
Run Code Online (Sandbox Code Playgroud)

java simpledateformat

5
推荐指数
1
解决办法
350
查看次数

SimpleDateFormat无法按预期工作

我尝试使用这个功能,但它不适用于这种情况'12/05/201a'有人知道为什么会发生这种情况?

在我的测试中,我使用了这个 System.out.println(isThisDateValid("12/05/201a", "dd/MM/yyyy"));,答案是,true但我预计结果将是假的,因为年份包含字母.

 public static boolean isThisDateValid(String dateToValidate, String dateFromat)
    {

        if (dateToValidate == null)
        {
            return false;
        }

        SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
        sdf.setLenient(false);

        try
        {

            //if not valid, it will throw ParseException
            Date date = sdf.parse(dateToValidate);
            System.out.println(date);

        } catch (ParseException e)
        {

            e.printStackTrace();
            return false;
        }

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

java date simpledateformat

5
推荐指数
1
解决办法
893
查看次数