标签: simpledateformat

java SimpleDateFormat行为

我有一个带模式的SimpleDateFormat yyyy-M-d",以及以下场景:

String str = "02-03-04";        
SimpleDateFormat f = new SimpleDateFormat("yyyy-M-d");
f.setLenient(false);
System.out.println(f.parse(str));
Run Code Online (Sandbox Code Playgroud)

输出是 Sat Mar 04 00:00:00 EST 2

我的目标是仅以2004-02-03的格式捕捉日期并忽略02-03-04.我认为模式中的yyyy需要4位数年份,但显然事实并非如此.任何人都可以解释为什么这不会抛出一个解析异常?我想要......

java simpledateformat

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

转换GMT DateTime字符串

我是Java的新手,我对使用SimpleDateFormat和使用时有点困惑Calendar.我有一个Date-Object,想要提取GMT日期字符串yyyy-MM-dd HH:mm:ss.我住在德国,目前我们是GMT +0200.我的Date-Object的时间就是例如2011-07-18 13:00:00.我现在需要的是2011-07-18 11:00:00.我的时区的偏移量应自动计算.

我试过这样的事情,但我想某处有一个错误:

private String toGmtString(Date date){
    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    TimeZone timeZone = TimeZone.getDefault();
    Calendar cal = Calendar.getInstance(new SimpleTimeZone(timeZone.getOffset(date.getTime()), "GMT"));
    sd.setCalendar(cal);
    return sd.format(date);
}
Run Code Online (Sandbox Code Playgroud)

在某些设备上,datetring会像我想要的那样返回.在其他设备上,偏移量未正确计算,我从输入日期 - 对象接收日期和时间.你能给我一些提示或建议吗?我想我的方式获得默认时区不起作用?

java android date gmt simpledateformat

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

来自字符串的Java星期几

我有这个简单的代码:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2011-10-29");
calendar.setTime(date);
Log.d("Debug","Day of the week = "+(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY));
Run Code Online (Sandbox Code Playgroud)

十月二十九日是星期六,为什么我会弄错?

java calendar date dayofweek simpledateformat

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

SimpleDateFormat ParseException:无法解析的日期错误

我正在从XML解析这个日期格式:=>" 2011-12-06T07:41:14.016 + 00:00 ",我收到此错误:

  • W/System.err(574):java.text.ParseException:Unparseable date:"2011-12-06T07:41:14.016 + 00:00"

我确定这是我正在使用的格式化声明,但我无法弄清楚它应该是什么......

这是我正在使用的声明:

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

我得到了如何创建这个部分的格式:" 2011-12-06T07:41:14 ....",这是另一部分:=>".016 + 00:00 "这就是我的循环.

我已经在这里寻找答案:Android SimpleDateFormat页面,这里是Oracle SimpleDateFormat页面,但我担心我遗漏了一些基本的东西......

您是否对该特定日期格式的正确格式声明或相关资源有任何建议?

非常感谢提前!

java android simpledateformat

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

SimpleDateFormat不一致的解析错误

示例代码说明了一切:

private void parse() throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy");

        Date started = sdf.parse("Sep/22/2004");
        // this triggers: java.text.ParseException: Unparseable date: "May/23/2010"
        Date ended = sdf.parse("May/23/2010");
}
Run Code Online (Sandbox Code Playgroud)

不知道我还能添加什么.我正在尝试解析"MMM/dd/yyyy"日期,并且我得到了不一致的异常行为.感觉我错过了一些明显的东西.

java simpledateformat

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

Java DateFormat.parse认为"100 112TH AVE NE"是一个日期

我正在使用此处包含的代码来确定给定值是否为有效日期.在一个特定情况下,它正在评估以下街道地址:

100 112TH AVE NE

显然不是约会,但Java将其解释为:

太阳1月12日00:00:00 EST 100

有问题的代码:

String DATE_FORMAT = "yyyyMMdd";
try {
    DateFormat dfyyyyMMdd = new SimpleDateFormat(DATE_FORMAT);
    dfyyyyMMdd.setLenient(false);
    Date formattedDate;
    formattedDate = dfyyyyMMdd.parse(aValue);
    console.debug(String.format("%s = %s","formattedDate",formattedDate));
} catch (ParseException e) {
    // Not a date
}
Run Code Online (Sandbox Code Playgroud)

控制台返回:

11:41:40.063 DEBUG TestValues | formattedDate = Sun 1月12日00:00:00 EST 100

知道这里发生了什么吗?

java date simpledateformat

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

java.text.ParseException:无法解析的日期:将mm/dd/yyyy字符串转换为日期

当我将我的字符串对象mm/dd/yyyy格式转换为Date它给我

java.text.ParseException: Unparseable date: "09/17/2014"
Run Code Online (Sandbox Code Playgroud)

我想这样做:

String date= "09/17/2014";
DateFormat df = new SimpleDateFormat();
Date journeyDate= (java.sql.Date) df.parse(date);
Run Code Online (Sandbox Code Playgroud)

java date simpledateformat

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

SimpleDateFormat始终以错误的时区返回1970.01.17

我一直在使用Processing 3.0,当我的Arduino输出某些值时,我正在尝试打印一个简单的时间戳,但它无效.我尝试使用SimpleDateFormat,但它总是返回1970.01.17 17:48:35 GMT,而不是实际时间.以下是MVCE:

void setup ()
{      
  SimpleDateFormat format = new SimpleDateFormat ("yyyy.MM.dd HH:mm:ss z");
  format.setTimeZone (TimeZone.getDefault());

  long timestamp = getTimeNow();
  println(format.format(new Date(timestamp)));
  println(timestamp);
}

long getTimeNow ()
{
   Date d = new Date ();
   Calendar cal = new GregorianCalendar();

   long current = d.getTime()/1000;
   long timezone = cal.get(Calendar.ZONE_OFFSET)/1000;
   long daylight = cal.get(Calendar.DST_OFFSET)/1000;
   return current + timezone + daylight;
}
Run Code Online (Sandbox Code Playgroud)

输出示例:

1970.01.17 17:48:35 GMT 
1442915733
Run Code Online (Sandbox Code Playgroud)

我怀疑问题是什么getTimeNow(),因为,如果我将值插入在线纪元转换器,我得到正确的时间.上面的代码有什么问题?

java processing date epoch simpledateformat

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

设备之间AM / PM的Android DateFormat不同

我正在像这样格式化日期:

    public static String toFormattedDate(@NonNull Time time, String toFormat) {
        mDateFormat = new SimpleDateFormat(toFormat);

        Date date = new Date();
        date.setTime(time.toMillis(true));

        return mDateFormat.format(date);
    }
Run Code Online (Sandbox Code Playgroud)

我使用的格式是:

    public static final String TIME = "hh:mm a";
Run Code Online (Sandbox Code Playgroud)

但这在我用于测试的两个设备之间有所不同...

Nexus 10: Nexus 10

Nexus 5X: Nexus 5X

如何在设备之间统一格式化?

java android date-format simpledateformat android-date

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

java日期格式 - GMT 0700(PDT)

这是我需要处理的日期格式

Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)

但我不知道最后两部分是什么.是GMT-0700固定的吗?它应该是这样的吗?

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT-0700' (z)");
Run Code Online (Sandbox Code Playgroud)

java simpledateformat

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