我是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会像我想要的那样返回.在其他设备上,偏移量未正确计算,我从输入日期 - 对象接收日期和时间.你能给我一些提示或建议吗?我想我的方式获得默认时区不起作用?
我正在尝试从Web服务器下载文件并将其保存在服务器随文件发送的原始文件名下.下载工作得很好,但我无法获得真正的文件名.
举个实例我试图下载这个文件(Foxit PDF Reader).
如果我在Chrome等浏览器中使用此链接,则浏览器会下载包含版本等名称的文件.我从哪里获取此名称?我尝试阅读标题信息并正在搜索,Content-Disposition但服务器不发送此信息.我从哪里获得确切的文件名?
我试过这样的事情:
try {
URL webfile = new URL("http://www.foxitsoftware.com/downloads/latest.php?product=Foxit-Reader");
URLConnection con = webfile.openConnection();
Map map = con.getHeaderFields();
Set set = map.entrySet();
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (IOException ex) {
System.out.println("Error: "+ex.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
正如您在输出中看到的那样,没有Content-Disposition:
null=[HTTP/1.1 200 OK]
ETag=["244005-f36d40-4d003f3868000"]
Date=[Sat, 08 Dec 2012 12:29:02 GMT]
Content-Length=[15953216]
Last-Modified=[Tue, 04 Dec 2012 10:01:36 GMT]
Content-Type=[application/x-msdos-program]
Connection=[close]
Accept-Ranges=[bytes]
Server=[Apache/2.2.16 (Debian)]
Run Code Online (Sandbox Code Playgroud)
那么如何检索确切的文件名呢?浏览器中的链接下载具有名称的文件FoxitReader544.11281_enu_Setup.exe.
有任何想法吗?!
我正在使用android gcm为我的用户发送推送通知.一切都很好.要发送通知,我需要用户注册ID来识别他.有用.现在我的问题是我有几百个用户,我想告诉他们所有关于某些更新.
有没有办法向所有用户发送通知?我是否真的必须通过他们的注册ID来推动他们所有人?
在服务器端,我使用PHP和CURL,因为它在这里的许多示例中显示...
我想检查给定的f interface{}函数参数是否是指向结构的指针,但不知何故陷入困境:
更新的片段:
package main
import (
"fmt"
"log"
"reflect"
)
func main() {
// Switch f between being a pointer or not
f := &struct{Foo string}{"Bar"}
if err := something(f); err != nil {
log.Fatal(err.Error())
}
}
func something(f interface{}) error {
if reflect.ValueOf(f).Kind() != reflect.Struct {
return fmt.Errorf("not struct; is %s", reflect.ValueOf(f).Kind().String())
}
if reflect.ValueOf(f).Kind() != reflect.Ptr {
return fmt.Errorf("not ptr; is %s", reflect.ValueOf(f).Kind().String())
}
// Deal with element values...
t := reflect.ValueOf(f).Elem()
for i := …Run Code Online (Sandbox Code Playgroud)