在Java中设置日期格式,以便与文本到语音一起使用

在Java中设置日期格式,以便与文本到语音一起使用,java,datetime,formatting,text-to-speech,Java,Datetime,Formatting,Text To Speech,我有一个日期,我想将其格式化为文本,供文本到语音引擎使用。我目前正在使用各种SimpleDateFormats手工完成 格式化应产生的结果示例: 2001年1月25日下午6点 2000年1月25日下午7点5分 2011年1月25日下午7点52分 有什么想法吗?谢谢。你需要的是把数字变成文字。你已经走到一半了,到这里来看看这个程序是否有帮助。一旦你将数字转换成文字,那么就很容易与TTS集成 如果时间和/或预算有限,我可能会使用SimpleDateFormat创建由分隔符分隔的元素,然后编写自己

我有一个
日期
,我想将其格式化为文本,供文本到语音引擎使用。我目前正在使用各种
SimpleDateFormat
s手工完成

格式化应产生的结果示例:

  • 2001年1月25日下午6点
  • 2000年1月25日下午7点5分
  • 2011年1月25日下午7点52分

有什么想法吗?谢谢。

你需要的是把数字变成文字。你已经走到一半了,到这里来看看这个程序是否有帮助。一旦你将数字转换成文字,那么就很容易与TTS集成

如果时间和/或预算有限,我可能会使用
SimpleDateFormat
创建由分隔符分隔的元素,然后编写自己的函数将其转换为可读文本

因此,我首先转换为:
2001年1月25日下午6点
2000年1月25日| 7日| 05日|下午

2011年1月25日| 7日| 52日|下午


然后将结果解析为自定义格式(基于我希望听到日期/时间的声音),然后进行文本到语音转换。边缘案例的数量在我看来似乎很低。

如果你想失去精度,有一些代码的示例报告时间为“四分之一”或“十点五”,但我可以找到的示例都是做你已经在做的事情,并使用If/then/else检查所有特殊案例

请看一看执行此操作的Python脚本,或者搜索“模糊时间”以获得其他几个示例


否则,只要你抓住了所有的边缘情况,我认为你已经走上了正确的道路。

你想知道如何使用
SimpleDateFormat
还是哪一个更好??从你的问题来看还不清楚。我已经在用if-then逻辑和simpledateformat了,但我不确定我是否抓住了所有的边缘情况。我很好奇是否有一些行之有效的方法(例如Jodatime、apache commons等)。谢谢链接。我正在使用的文本到语音转换软件可以正确读取数字。问题在于如何设置日期格式,以便将“6:00pm”改为“6pm”,而将“6pm”改为“6pm”。我正在寻找具有智能的代码来解决这个问题。很有趣,谢谢你提供的信息。是的,我想我已经抓住了一切(还没有人抱怨!)