SimpleDateFormat:
SimpleDateFormat pdf = new SimpleDateFormat("MM dd yyyy hh:mm:ss:SSSaa");
Run Code Online (Sandbox Code Playgroud)
抛出的异常pdf.parse("Mar 30 2010 5:27:40:140PM");:
java.text.ParseException: Unparseable date: "Mar 30 2010 5:27:40:140PM"
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:感谢快速解答.你们都是对的,我只是错过了SimpleDateFormat文档中的一个关键句子 - 我应该把它称为一天.
我想格式化从 Dropbox API 的元数据调用中获得的日期/时间。我已经阅读了有关格式化日期/时间的详细信息参考:Dropbox API Date format 但仍然不清楚。我使用 JAVA 并通过 JSON 检索元数据。我需要做的是
格式:2012 年 9 月 27 日星期四 13:44:09 +0000 ----to---> 27/09/2012 13:44:09
我尝试过 SimpleDateFormat 但它返回给我类似无法将字符串转换为日期时间格式的东西。先感谢您。
使用SimpleDateFormat,如何解析字符串:"2013-05-23T09:18:07 pm.380 + 0000"
我的所有SimpleDateFormat字符串都在"pm"部分绊倒.
提前致谢.
编辑:我们无法控制进入的格式.
我试过了:
"yyyy-MM-dd'T'HH:mm:ss a.a..SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaaa.SSSZ"
"yyyy-MM-dd'T'HH:mm:ss a.'m'..SSSZ"
"yyyy-MM-dd'T'HH:mm:ss a.'m.'.SSSZ"
"yyyy-MM-dd'T'HH:mm:ss a.'m..'SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aa'm'..SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aa'm.'.SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaa'..'SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaa.'.'SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaa'.'.SSSZ"
Run Code Online (Sandbox Code Playgroud) 当我尝试在gsp视图中使用日期格式标记来更改我的日期格式但它不起作用.
这是我的代码:
class MyDate {
Date date
}
Run Code Online (Sandbox Code Playgroud)
MyDateController:
....
def unixSeconds = params["date"].replaceAll("\"", "") as long //params["date"]="1386157660"
Date date = new Date(unixSeconds*1000L)
myDateInstance = new MyDate(date:date)
....
Run Code Online (Sandbox Code Playgroud)
gsp查看:
${myDateInstance.date.format('yyyy-MM-dd HH:mm')}
Run Code Online (Sandbox Code Playgroud)
我的格式是2013-12-04 12:47:40.0而不是2013-12-04 12:47
我试图通过使用java.text.SimpleDateFormat将String格式的日期转换为java.util.Date,但是它没有给我正确的输出.请帮忙!
我的输入是由Django date生成的:ex."2014-01-20T07:17:06.150995 + 00:00"
但是,我得到了"Mon Jan 20 15:19:36 GMT + 08:00 2014"而不是"Mon Jan 20 15:17:06 GMT + 08:00 2014"
这是我的测试代码:
String s = "2014-01-20T07:17:06.150995+00:00";
SimpleDateFormat sdf;
String fmt = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ";
sdf = new SimpleDateFormat(fmt, Locale.US);
String result = "";
try {
Date date = sdf.parse(s);
Log.d(Constants.LOG_TAG, date.toString());
result = date.toString();
} catch (Exception e) {
Log.d(Constants.LOG_TAG, "date formatting error" + e.getMessage());
}
Log.d(Constants.LOG_TAG, "date test >> " + result);
Run Code Online (Sandbox Code Playgroud) 我使用以下SimpleDateFormat来解析字符串,
SimpleDateFormat ft= new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
String notimeZone = ft.format(startDateTime);
Date date = ft.parse(notimeZone);
Run Code Online (Sandbox Code Playgroud)
startDateTime是日期对象,其值格式为“Thu Mar 06 12:27:55 IST 2014”。
在notimeZone变量中,我得到了,2014 年 3 月 6 日星期四 12:27:55
我期待可变日期的输出,2014 年 3 月 6 日星期四 12:27:55
但是我变得一样了,星期四 3 月 6 日 12:27:55 IST 2014。
如何从日期对象中删除时区。
请帮忙。
我在使用formatSimpleDateFormat对象的方法时遇到问题.
有问题的代码是:
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(date);
Run Code Online (Sandbox Code Playgroud)
其中"date"是使用Calendar.getTimeInMillis()中的long int创建的Date对象;
Calendar cal = Calendar.getInstance();
Date date = new Date(cal.getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)
一切都工作正常,除了字符串的年份部分.当我传递日期时,输出的字符串如下所示:
0044-09-10 05:30:24
Run Code Online (Sandbox Code Playgroud)
传递的日期对象是从返回的长整数创建的:
Calendar.getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)
我相信从这个方法返回的数字是从1月1日开始的毫秒数.1970年,我认为是问题所在,但即使我在1970年增加了毫秒数(大声笑,可能是错误的事情,但值得一试:P),它仍然在0044中解析年份.
我已经做了很多谷歌搜索,所有似乎都指向传递给SimpleDateFormat构造函数的字符串中的简单问题,所以我在这里不知所措.
任何帮助是极大的赞赏.
如果需要任何其他信息,请告诉我,我会尽力提供.
再次感谢!
编辑:
我想我会更多地解释一下背景:
技术人员将进行呼叫,并在到达站点时将呼叫标记为"已启动".然后,应用程序将创建一个Calendar实例并保存从中返回的long int Calendar.getTimeInMillis().
当技术人员完成呼叫时,他/她将呼叫标记为"完成".同样,Calendar创建一个实例并Calendar.getTimeInMillis()保存返回的long int .
这允许简单的"呼叫持续时间"计算.
现在,当使用技术人员在应用程序中使用的结束表单时,在调用期间保存的长整数将传递给Date对象,然后将其传递给SimpleDateFormat.format()方法.
这就是问题出现的地方.再次感谢,希望这有帮助.
我有以下几行:
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date d = simpleDateFormat.parse("2004-52-05");
Run Code Online (Sandbox Code Playgroud)
我希望第2行会抛出异常,因为'52'不是有效的月份,但是代码运行并且存储在d对象中的日期是
Sat Apr 05 00:00:00 EEST 2008
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么吗?
如何在 android 开发中自定义日期格式,使其类似于 twitter 和 instagram。我在当前代码下面有什么,但我不喜欢它产生的格式,如“11 分钟前”或“34 分钟前”。我更喜欢 Twitter 格式,如“11m”或“34m”。请有人知道我如何格式化我的日期吗?
Date createdAt = message.getCreatedAt();//get the date the message was created from parse backend
long now = new Date().getTime();//get current date
String convertedDate = DateUtils.getRelativeTimeSpanString(
createdAt.getTime(), now, DateUtils.SECOND_IN_MILLIS).toString();
mPostMessageTimeLabel.setText(convertedDate); //sets the converted date into the message_item.xml view
Run Code Online (Sandbox Code Playgroud) 我得到了非常奇怪的结果,我无法理解。
public class Test {
private static DateFormat df = new SimpleDateFormat("dd.MM.YYYY HH:mm");
public static void main(String[] args) {
Date d = new Date(1356912000000L);
System.out.println(d);
System.out.println(df.format(d));
}
}
Run Code Online (Sandbox Code Playgroud)
给出输出:
Mon Dec 31 01:00:00 CET 2012
31.12.2013 01:00
Run Code Online (Sandbox Code Playgroud)
我认为这可能是语言环境的一些问题,但这是整整一年的转变!任何人都可以解释为什么它会以这种方式执行?