我正在编写一个股票程序,它(到目前为止)通过这样的请求从“Markit on Demand”获取数据:
http://dev.markitondemand.com/Api/v2/Quote/xml?symbol=aapl
这将返回 xml 中的数据,以及股票的各种度量(符号、名称、最后价格、变化、时间戳等)。
我在 Java 8 中创建 DateTimeFormatter 来制作时间戳时遇到问题。
时间戳的一个示例:
Fri Jul 18 15:59:00 UTC-04:00 2014
到目前为止,我拥有的模式如下:
EEE MMM d HH:mm:ss OOOO yyyy
我相信你们中的一些人可以发现,我在偏移方面遇到了麻烦。
从文档:
偏移量 X 和 x:这根据模式字母的数量格式化偏移量。一个字母只输出小时,例如“+01”,除非分钟不为零,在这种情况下也会输出分钟,例如“+0130”。两个字母输出小时和分钟,没有冒号,例如“+0130”。三个字母输出小时和分钟,带一个冒号,例如“+01:30”。四个字母输出小时和分钟以及可选的秒,没有冒号,例如“+013015”。五个字母输出小时和分钟以及可选的秒,带有冒号,例如“+01:30:15”。六个或更多字母抛出 IllegalArgumentException。当要输出的偏移量为零时,模式字母 'X'(大写)将输出 'Z',而模式字母 'x'(小写)将输出 '+00', '
Offset O:根据模式字母的数量格式化本地化的偏移量。一个字母输出本地化偏移量的缩写形式,即本地化偏移量文本,例如“GMT”,小时不带前导零,可选的两位数分钟和秒(如果非零)和冒号,例如“GMT+8” '。四个字母输出完整形式,它是本地化的偏移文本,例如'GMT,带有两位数的小时和分钟字段,可选的第二个字段(如果非零)和冒号,例如'GMT+08:00'。任何其他字母计数都会引发 IllegalArgumentException。
偏移 Z:这会根据模式字母的数量格式化偏移量。一、二或三个字母输出小时和分钟,不带冒号,例如“+0130”。当偏移量为零时,输出将为“+0000”。四个字母输出局部偏移的完整形式,相当于Offset-O的四个字母。如果偏移为零,则输出将是相应的本地化偏移文本。五个字母输出小时、分钟,如果非零,可选秒,带冒号。如果偏移为零,则输出“Z”。六个或更多字母抛出 IllegalArgumentException。
// String rawDate = Fri Jul 18 15:59:00 UTC-04:00 2014
DateTimeFormatter PARSER_PATTERN = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss 'UTC'XXX yyyy");
ZonedDateTime timeStamp = ZonedDateTime.parse(rawDate, PARSER_PATTERN);
Run Code Online (Sandbox Code Playgroud)
这有效,但我很好奇为什么(代替'UTC'XXX)OOOO不起作用。
我想知道当我将 a 转换.mp4为.mkv使用以下命令时,如果质量发生变化。
ffmpeg -i in.mp4 out.mkv
Run Code Online (Sandbox Code Playgroud)
输入文件的in.mp4文件大小为 297 兆字节,而out.mkv文件的大小为249 兆字节,减少了约 15%。经手动检查,分辨率、视频和音频流前后相同(鉴于我对 ffmpeg 的(有限)了解,正如我所期望的那样)。
简单地转换成15%的尺寸减小mkv实际上不会影响视频质量吗?如果是这样,这似乎是释放计算机上一些空间的非常合理的方法。
我正在使用swing试图建立一个垄断板.我试图将板上的属性/空间作为单独的JPanels,可以有自己的实现,信息等,但我在空间的形状有一些麻烦.我正在使用GridBagLayout(我对这个布局管理器相当新),我正在尝试将面板放置出来,以便对于JPanels,gridwidth = 4,gridheight = 3(参见附加代码).但是,当我运行它并查看它时,面板是方形的.当我将gridheight更改为2或1时,我确认这不起作用,它仍然显示正方形(我期望JPanels更加椭圆形).
原谅命名方案,我只是在Eclipse中的一个单独的临时项目文件中尝试这种布局,然后才在我的主要垄断程序中实现gui.
import static java.awt.GridBagConstraints.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class MainFrame extends JFrame {
private static final long serialVersionUID = 1L;
public MainFrame() {
super();
setDefaultCloseOperation(EXIT_ON_CLOSE);
Dimension screenSize = getToolkit().getScreenSize();
setSize(screenSize.height, screenSize.height);
setLocationRelativeTo(null);
setLayout(new GridBagLayout());
addCorners();
addEdges();
setVisible(true);
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
System.out.println("Component resized");
int width = getWidth();
int height = getHeight();
System.out.println(width + " " + height);
super.componentResized(e);
}
});
}
private int startingColRow = …Run Code Online (Sandbox Code Playgroud)