小编Kon*_*rus的帖子

Joda时区不同于JDK的

在我的客户端,我有这个代码:

System.out.println("Java tz: " + TimeZone.getDefault());
System.out.println("Joda tz: " + ISOChronology.getInstance());
Run Code Online (Sandbox Code Playgroud)

这两条线一个接一个地运行.我从不设置时区或user.timezone手动,只依赖于从操作系统和本地系统读取的默认值.

执行时,它们会产生:

Java tz: sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
Joda tz: ISOChronology[America/Phoenix]
Run Code Online (Sandbox Code Playgroud)

系统时区确实是凤凰城,而不是UTC.Joda怎么能正确,JDK错了?

编辑:这是一个Windows 7 x64主机,JRE是1.6.22 x64.

编辑2:不要试图重现它.它只会在某些系统上失败,而不是所有系统(就像我们的3k用户群中的几十个).我已经知道了Joda检查user.timezone然后TimeZone.getDefault().所以我正在寻找一个解释,说明我TimeZone直接打电话和Joda独自完成之间有什么不同.

java jodatime

3
推荐指数
1
解决办法
3757
查看次数

恒定时间长数的前N位数?

在Project Euler问题中,我需要处理可能有数百个数字的数字.我需要对前9位进行一些计算.

我的问题是:确定100位整数的前N位数的最快方法是什么?模数/余数的前N位数很容易.对于第一个数字,我可以按模数应用模数100次,或者我可以将数字转换为字符串并截断,但它们都是线性时间.有没有更好的办法?

algorithm numbers clojure

3
推荐指数
1
解决办法
2385
查看次数

Compojure-未提供所需参数时如何返回404?

假设我有这个处理程序:

(defroutes routes
  (DELETE    "/books"      [id]              (delete-book id)))
Run Code Online (Sandbox Code Playgroud)

当请求不包含ID时,如何使该应用返回HTTP 404?

clojure compojure

3
推荐指数
1
解决办法
2131
查看次数

RxJS/Angular2:为什么我的主题订阅者没有被调用?

我有一个数据服务,它通过HTTP运行查询(由某个组件触发),然后通过公开结果Observable.其他组件将订阅该组件Observable并更新其结果视图.

无论如何,这是个主意,但它不起作用.这是我的代码.

ItemListDataService:

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable, Subject } from "rxjs";
import 'rxjs/add/operator/map';

@Injectable()
export class ItemListDataService {
  private issues$: Subject<any>;

  constructor(private http: Http) {
    this.issues$ = new Subject();
    this.issues$.subscribe(x => console.log('GOT IT', x));
  }

  getList(): Observable<any> {
    return this.issues$;
  }

  refresh() {
    this.http.get('/whatever')
      .map((response: Response) => response.json())
      .subscribe(data => this.issues$.next(data));
  }
}
Run Code Online (Sandbox Code Playgroud)

ItemListComponent:

import { Component } from '@angular/core';
import { Observable } …
Run Code Online (Sandbox Code Playgroud)

rxjs angular

3
推荐指数
1
解决办法
3038
查看次数

PostgreSQL:"带时区的时间戳"和"时区"的别名

我碰巧timestamp without time zone在我的数据库中有表列.现在我需要将它们与时区进行比较.

我可以这样做:

select my_timestamp::timestamp with time zone at time zone 'EST5EDT'
from my_table
where 
    my_timestamp >= '2010-07-01'::timestamp at time zone 'EST5EDT' 
    and my_timestamp < '2010-08-01'::timestamp at time zone 'EST5EDT'
Run Code Online (Sandbox Code Playgroud)

这变得非常难看.是否有一种较短的方式,不需要我输入timestamp with time zone类型和at time zone转换?

postgresql time timezone

0
推荐指数
1
解决办法
1233
查看次数

关于类OR关键字的Clojure multimethod

假设我有这种多方法

(defmulti m (fn [v] [(:type v)]))

(defmethod m [Object] [k] (prn "Object"))

(defmethod m [:mykwd] [k] (prn "mykwd"))
Run Code Online (Sandbox Code Playgroud)

当我用子类调用它时Object,它会正确地调度到第一个实现:

(m {:type String})
"Object"
Run Code Online (Sandbox Code Playgroud)

随着:mykwd它也按预期工作:

(m {:type :mykwd})
"mykwd"
Run Code Online (Sandbox Code Playgroud)

但当我提供另一个关键字时,我得到一个例外:

(m {:type :anotherkwd})
#<CompilerException java.lang.IllegalArgumentException: No method in multimethod 'm'
for dispatch value: [:anotherkwd] (NO_SOURCE_FILE:0)>
Run Code Online (Sandbox Code Playgroud)

这个调度究竟是如何工作的?

是否可以为类继承保留此行为,并且仍然具有捕获所有关键字的"默认"实现?

编辑这个例子很简单,但我需要它来处理二进制函数.我的真正需求如下.我不知道如何申请:default它.

(defmulti m (fn [arg mp] [(class arg) (:type mp)]))
Run Code Online (Sandbox Code Playgroud)

然后,我正在寻找一种方式,当定义它的情况argnil(:type mp)是什么.这适用于value for :type是一个类,但不适用于任何关键字:

(defmethod …
Run Code Online (Sandbox Code Playgroud)

clojure multimethod

0
推荐指数
1
解决办法
1297
查看次数

位置后的静态元素:绝对值

我有以下标记:

<html>
<body style="margin:0;padding:0">
    <div>
        <div style="border:3px solid red; width:70%; position:absolute; left:2.5%">Left</div>
        <div style="border:3px solid blue; width:25%; position: absolute; left:72.5%">Right</div>
        <div style="border:3px solid black; width:95%; margin: 0 auto">Bottom</div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想在这里实现的是三个div如下:

+---------------------------+--------+
|Left                       |Right   |
+---------------------------+--------+
|Bottom                              |
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)

但是,对于我的标记,"底部"div与"左"和"底"重叠.

我应该如何设计这3个元素来实现这种效果呢?

请注意,"bottom"不是页面上的最后一个元素.我只想将"左"和"右"放在一行中,并且页面流继续从以下行开始默认定位.


编辑:除了接受的答案...如果您没有静态高度或由于某种原因不想硬编码,您可以实现类似的效果:

<div style="border:3px solid red; width:70%; position:absolute; left:2.5%">Left</div>
<div style="border:3px solid blue; width:25%; margin-left:72.5%">Right</div>
<div style="border:3px solid black; width:95%; margin: 0 auto">Bottom</div>
Run Code Online (Sandbox Code Playgroud)

html css

0
推荐指数
1
解决办法
9233
查看次数