基于JavaFX的SimpleDateFormat演示程序

对于使用Java Date进行格式化的新手甚至对于使用Java Date进行格式化的有经验的Java开发人员而言,可能有些棘手的事情是使用SimpleDateFormat规范日期/时间格式。 SimpleDateFormat的基于类级别的Javadoc的文档非常详尽,涵盖了表示日期/时间的各个组成部分的模式。
但是,除非人们仔细阅读并理解了这些不同的模式,否则要记住月份的小写字母“ d”和一年中的大写字母“ D”之间的区别或者记住是否是小写字母“ m”或“大写字母“ M”使用了几个月而不是几分钟。 在本文中,我看一个用JavaFX编写的简单应用程序,它使开发人员可以快速尝试任意模式,以查看SimpleDateFormat如何在给定任意模式的情况下呈现当前日期/时间。 从理论上讲,开发人员可以使用这个简单的工具快速确定其日期/时间模式的效果,但这实际上是应用JavaFX的一个借口。

下面的代码清单包含完整的基于JavaFX 2.x的应用程序。

package dustin.examples;import java.text.SimpleDateFormat;
import java.util.Date;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.control.TextFieldBuilder;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;/*** JavaFX application allowing for testing and demonstration of various String* formats for date/time.* * @author Dustin*/
public class DateTimeStringFormatDemonstrator extends Application
{/*** Generate the application's main pane.* * @return Main pane for the application.*/private Pane generateMainPane(){final VBox vbox = new VBox();final TextField dateTimeFormatField =TextFieldBuilder.create().prefWidth(350).alignment(Pos.CENTER).promptText("Enter DateFormat").build();vbox.getChildren().add(dateTimeFormatField);final TextField formattedDateField =TextFieldBuilder.create().prefWidth(350).alignment(Pos.BASELINE_CENTER).promptText("Date Output Goes Here").build();formattedDateField.setEditable(false);final Button applyButton = new Button("Apply Format");applyButton.setPrefWidth(350);applyButton.setOnMousePressed(new EventHandler<MouseEvent>(){@Overridepublic void handle(MouseEvent mouseEvent){try{final SimpleDateFormat sdf =new SimpleDateFormat(dateTimeFormatField.getText());formattedDateField.setText(sdf.format(new Date()));formattedDateField.setAlignment(Pos.CENTER);}catch (Exception ex){formattedDateField.setText("ERROR");formattedDateField.setAlignment(Pos.CENTER);}formattedDateField.setAlignment(Pos.BASELINE_CENTER);}});vbox.getChildren().add(applyButton);vbox.getChildren().add(formattedDateField);return vbox;}/*** The method overridden from Application for starting the application.* * @param stage Primary stage.* @throws Exception Exceptions throwing during execution of JavaFX application.*/@Overridepublic void start(final Stage stage) throws Exception{stage.setTitle("JavaFX Date/Time String Format Presenter");final Group group = new Group();group.getChildren().add(generateMainPane());final Scene scene = new Scene(group, 350, 65, Color.DARKKHAKI);stage.setScene(scene);stage.show();}/*** Main function for running date/time format JavaFX application.* * @param arguments Command-line arguments; none expected.*/public static void main(final String[] arguments){Application.launch(arguments);}
}
上面显示的基于JavaFX 2的简单应用程序使您可以轻松地尝试不同的日期/时间格式模式,以查看SimpleDateFormat将如何处理每种模式。 接下来显示在2012年5月8日星期二晚上使用的一系列此类。 这些示例演示了使用SimpleDateFormat几个关键方面:
  • 大写字母“ M”用于几个月,小写字母“ m”用于分钟。
  • “ M”字符的数量表示月份的表示形式(例如:5月的5、05或“ 5月”)。
  • 大写字母“ D”表示年份中的日期(自1月1日开始),小写字母“ d”表示月份中的日期(自5月1日开始)。
  • 两个'y'或'Y'数字代表2位数字的年份,但是3或4个'Y'或'y'数字可用于4位数字的年份。
本博客文章中突出显示的简单示例演示了JavaFX的简单性,并提供了JavaFX如何提供图形界面以使Java应用程序更直观的示例。 作为其一部分,将演示JavaFX中的鼠标事件处理以及使用构建器的常见JavaFX习惯用法 。 此应用程序的实际用途是快速轻松地确定由SimpleDateFormat为给定模式提供的表示形式。

参考:来自JCG合作伙伴 Dustin Marx 的基于JavaFX的SimpleDateFormat演示器,来自Inspired by Actual Events博客。


翻译自: https://www.javacodegeeks.com/2012/05/javafx-based-simpledateformat.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql中预定义常量_PHP预定义常量

这些常量在 PHP 的内核中定义。它包含 PHP、Zend 引擎和 SAPI 模块。PHP_VERSION (string)PHP_OS (string)PHP_EOL (string)自 PHP 4.3.10 和 PHP 5.0.2 起可用PHP_INT_MAX (integer)自 PHP 4.4.0 和 PHP 5.0.5 起可用PHP_INT_SIZE (integer)自 PHP 4.4.0 和 PHP 5.0.5 起可用D…

iOS与H5交互

前提&#xff1a;在iOS控制器中加载UIWebView&#xff0c;设置代理&#xff0c;遵守UIWebViewDelegate协议。 一、iOS调用JS方法 通过iOS调用JS代码实现起来比较方便直接调用UIWebView的方法- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script…

cocos2dx 3.x 蒙板 遮罩 点击圆功能

//注册触摸EventListenerTouchOneByOne *listener EventListenerTouchOneByOne::create();listener->onTouchBegan CC_CALLBACK_2(HelloWorld::onTouchBegan,this);listener->onTouchMoved CC_CALLBACK_2(HelloWorld::onTouchMoved,this);listener->onTouchEnded …

markdownTest

MARKDOWNTEST 11111111111111有一种神奇的语言&#xff0c;它比html还简单&#xff0c;它巧妙地将内容与格式整合在一起——它就是Markdown有一种神奇的语言&#xff0c;它比html还简单&#xff0c;它巧妙地将内容与格式整合在一起——它就是Markdown 111111111111111222222222…

python模拟密码有效性检测功能_检查密码有效性(Django/Python)

我有一个非常小的Django应用程序&#xff0c;主要是为了学习。我使用的是Django提供的内置用户模型。为了学习这个功能&#xff0c;我创建了一些页面&#xff0c;这些页面允许我创建和编辑用户&#xff0c;而不必进入管理面板。在register页面允许我非常容易地检查密码和电子邮…

教程:Hibernate,JPA –第1部分

这是关于使用Hibernate和JPA的教程的第一部分。 这部分是对JPA和Hibernate的介绍。 第二部分将研究使用Spring ORM组合Spring MVC应用程序以减少创建CRUD应用程序所需的代码量。 为此&#xff0c;您需要熟悉Maven&#xff0c;JUnit&#xff0c;SQL和关系数据库。 依存关系 首…

TCP、UDP套接字的数据传输

tcp发送数据&#xff1a; 1 #include <sys/types.h> 2 #include <socket.h> 3 ssize_t send(int sockfd,const void *msg,size_t len,int flags); 函数send只能对面向连接的套接字使用。参数sockfd为已经建立好连接的套接字描述符。参数msg指向待发送数据的缓冲区&…

Windows下用PIP安装scipy出现no lapack/blas resources found

Windows下升级了pandas&#xff0c;但是发现scipy包随后引用出错&#xff0c;后来确认需重新安装scipy&#xff0c; 在用PIP安装scipy出现no lapack/blas resources found的错误&#xff0c;具体原因可参考 这里。 后来找到一种简便的解决方案&#xff0c;只要在网站 Unofficia…

Aleri –复杂事件处理

Sybase的Aleri流媒体平台是CEP市场中最受欢迎的产品之一。 它在Sybase的交易平台RAP版本中使用&#xff0c;该版本在资本市场中广泛用于管理投资组合中的头寸。 今天&#xff0c;在这个由多个部分组成的系列文章的第一个部分中&#xff0c;我希望提供Aleri平台的概述&#xff0…

python版本回退_Python爬虫之BeautifulSoup解析之路

上一篇分享了正则表达式的使用&#xff0c;相信大家对正则也已经有了一定的了解。它可以针对任意字符串做任何的匹配并提取所需信息。但是我们爬虫基本上解析的都是html或者xml结构的内容&#xff0c;而非任意字符串。正则表达式虽然很强大灵活&#xff0c;但是对于html这样结构…

0615 团队第二阶段贡献

0615 团队第二阶段贡献 列志华http://www.cnblogs.com/liezhihua/ 26% 组长 黄柏堂 http://www.cnblogs.com/huang123/ 22% 团队 韩麒麟 http://www.cnblogs.com/hanqilin/ 26% 团队 王俊杰 http://www.cnblogs.com/wangjunjie123/ 28%团队posted on 2016…

WebStorm 运行Rect Native 项目

今天教大家如何直接使用WebStorm这个IDE直接完成编码运行项目工作.这样就可以不用打开Xcode了. 1.首先点击WebStorm右上方的下拉箭头弹出的Edit Configurations.... 2.然后会进入一个配置页面.点击左上方的.在弹出的列表中选中npm.如图. 3.在右边的配置框中,先选择Command为hel…

python编程比赛_用Python编程分析4W场球赛后,2018世界杯冠军竟是…

比赛已经开始&#xff0c;我们不妨用 Python 来对参赛队伍的实力情况进行分析&#xff0c;并大胆的预测下本届世界杯的夺冠热门球队吧&#xff01;通过数据分析&#xff0c;可以发现很多有趣的结果&#xff0c;比如&#xff1a;找出哪些队伍是首次进入世界杯的黑马队伍找出2018…

GlassFish 3.1.2充满了MOXy(EclipseLink JAXB)

我非常高兴地宣布&#xff0c; EclipseLink JAXB&#xff08;MOXy&#xff09;现在是GlassFish 3.1.2中的JAXB&#xff08; JSR-222 &#xff09;提供程序。 我要感谢EclipseLink和GlassFish提交者为实现这一目标付出的​​辛勤工作。 在本文中&#xff0c;我将介绍如何利用MOX…

梦断代码阅读笔记03

读完《梦断代码(Dream In Code)》样书&#xff0c;我感觉心情有点沉重&#xff0c;Chandler项目的结局&#xff0c;它失败了&#xff0c;它成了众多失败软件项目中的一个。这个结局让那个我感受到软件实在是太难了&#xff0c;我觉得当初选这个专业可能到最后只是一个码农。但是…

Java访问权限的范围

二、下面用表格来展示四种修饰符的访问权限范围&#xff1a; 同一个类 同一个包 不同包的子类 不同包的非子类 public √ √ √ √ protected √ √ √ 默认(default) √ √ private √ 转载于:https://www.cnblogs.com/jianxin-lilang/p/6…

JavaFX 2 GameTutorial第2部分

介绍 Ť他的是一系列与一个JavaFX 2游戏教程博客条目的第二批。 如果您尚未阅读第1部分&#xff0c;请参阅JavaFX 2游戏教程的简介部分。 在第1部分中&#xff0c;我提到了游戏的某些方面以及原型飞船的简单演示&#xff08;原型由简单的形状组成&#xff09;&#xff0c;该飞船…

sqlyog连接mysql教程_如何用SQLyog实现远程连接MySQL

SQLyog客户端&#xff0c;用root用户远程链接MySQL时&#xff0c;提示ldquo;访问被拒绝rdquo;&#xff0c;在网上搜索了一下原因。原来是MySQL没有授权其远程链1&#xff0c;SQLyog客户端&#xff0c;&#xff0c;用root用户远程链接MySQL时&#xff0c;提示“访问被拒绝”&…

动态SQL+变量绑定:解决ORA-01704: 字符串文字太长的问题

最近在做一个ESB项目&#xff0c;有一个trigger里面执行动态SQL的时候报错&#xff1a; ORA-01704: 字符串文字太长 经检查发现SQL里面有个字段是clob类型&#xff0c;内容长度4009&#xff0c;在oracle里面&#xff0c; 一对引号内的字符长度如果超过4000&#xff0c;就会报OR…

JavaME:Google静态地图API

无论您是需要基于位置的应用程序的地图还是只是出于娱乐目的&#xff0c;都可以使用有史以来最简单的方法&#xff1a;Google Static Maps API。 在这篇文章中&#xff0c;我们将看到如何从纬度和经度获得地图作为图像。 可以使用Location API获得纬度和经度&#xff0c;我们将…