我在服务器中生成的某个日志文件中有毫秒数,我也知道生成日志文件的区域设置,我的问题是将指定格式的毫秒转换为日期.该日志的处理发生在位于不同时区的服务器上.转换为"SimpleDateFormat"程序时,机器的日期是这样的,因为这样的格式化日期并不代表服务器的正确时间.有没有办法优雅地处理这个问题?
long yourmilliseconds = 1322018752992l;
//1322018752992-Nov 22, 2011 9:25:52 PM
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS",Locale.US);
GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("US/Central"));
calendar.setTimeInMillis(yourmilliseconds);
System.out.println("GregorianCalendar -"+sdf.format(calendar.getTime()));
DateTime jodaTime = new DateTime(yourmilliseconds,
DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Central")));
DateTimeFormatter parser1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss,SSS");
System.out.println("jodaTime "+parser1.print(jodaTime));
Run Code Online (Sandbox Code Playgroud)
输出:
Gregorian Calendar -2011-11-23 08:55:52,992
jodaTime 2011-11-22 21:25:52,992
Run Code Online (Sandbox Code Playgroud) 我在SQLite DB中存储Calendar.getTimeInMilliseconds()中的日期.我需要在SELECT语句中按月标记第一行,因此我需要使用SQLite函数将时间(以毫秒为单位)转换为任何日期格式.我怎么能避免这个?
我试图将以下时间戳(自纪元以来的毫秒)转换为正常的日期时间.我在windows xp上使用sqlite3.
我正在使用此查询:从表中选择datetime((timestamp/86400000)+25569);
(timestamp是包含值的列名,如1289325613669,1289325823860,1289327180545).
我似乎没有得到正确的价值观.难道我做错了什么?
在我的数据库中,我有一个表date作为列之一,它存储用户在我的表中添加一些数据的日期.
现在我想单独检索当月的数据.我在谷歌搜索但没有得到适当的答案.
我的表创建代码:
"create table incomexpense(
_id integer primary key autoincrement,
"+"price text not null,description text not null,
"+"quantity text not null,
"+"total text not null,
"+"category text not null,
"+"recurrence text not null,
"+"date text not null,
"+"groups text not null,
"+" recurrenceid text not null);";
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助如何从当前日期获取第7天的日期.